はじめに
どんなニーズに向けて?
- 開発者以外がApple Developer Accountに登録することになった場合
- 個人アカウントでApple Developer Accouontに登録して複数人で開発したい場合
- iOSベータ版配布までの一連の流れをとりあえず知りたい場合
誰のため?
非開発者かつAccount Holder(Apple Developer Accountを開設した者)
5. (他の)開発者に開発に必要なファイルを渡すまで進めてください。
またこの場合は、開発者に以下のことを事前に聞いておくとスムーズです。
- 開発に用いるデバイスのUDID (3.3 開発者デバイスの登録)
- 開発者のメールアドレス
開発者かつAccount Holder
全部のステップ
開発者
6. Xcodeでの手続き以降を進めてください。
前提環境
Xcode 11
概要
1. 用語整理
2. Apple Developerに登録する
3. Apple Developerで手続きをする
4. App Store Connectで開発者や内部テスト参加者などを登録する
5. (他の)開発者に開発に必要なファイルを渡す
6. Xcodeでの手続き
7. Xcodeでゴリゴリ開発する
8. Xcodeでベータ版を配布する
事前準備
##1. 用語整理
Acount Holder
Apple Developer Accountを開設した(支払いをした)メールアドレスに紐付けられた権限ユーザー。
Account Holderの協力がないと開発ができません。
Apple Developer Account
開発や配布に必要な証明書・ID・プロファイルの作成をするプラットフォーム
※ Account Holderしかできません
App Store Connect
開発中のアプリの管理をするプラットフォーム。
旧iTunes Connect。古い記事をググる時は注意してください。
主な役割は、
- App Store申請
- TestFlight管理
- チームの管理
※Apple Developerでメンバーの追加はできないので注意。古い記事だとできるって書いてあるができません。
TestFlight
ベータ版の配布を可能にする超便利な配信サービス。
通常iOSアプリの配布というとApp Storeにアプリを載せることですが、その前段階としてベータ版の配布をすることができます。
指定したユーザーのメールアドレスを招待あるいは公開リンクを発行するだけで、ベータ版をダウンロードしてもらうことができます。
TestFlightについては以下で丁寧にまとまっています。
参考: TestFlightを今更まとめてみた
Xcode
開発・ビルド・配布アプリのアップロードなどをする統合開発環境
##2. Apple Developerに登録する
これはググったら結構情報出てきます。
アカウントの種類は個人と組織(主に企業向け)の2つがありますが、詳しい用件はApple Developer Programの登録のために必要な情報で丁寧に書かれています。
組織として登録するには手続きが増えて時間もかかりそうなので、早めに着手するとよさそうです。
参考: Apple Developer Programに法人として参加する
##3. Apple Developerで手続きをする
基本的に[iPhone] iOSアプリを登録、申請して公開するまでに沿ってやって頂ければ問題ありません。しかし少々情報が古いので補足する形で以下書いております。
まずは、Apple DeveloperのアカウントページのCertificates, Identifiers & Profilesから始めましょう。
注意点としては、組織アカウントでない限り、Account Holderしかこの章の手続きはできないです。後述のApp Store Connectで追加されたメンバーではできません。
###3.1 iOS Certificateの発行
-
Certificates
タブから開発用(Apple Development
)と配布用(Apple Distribution
)の両方を作成します - 参考リンクでは
iOS App Development
とiOS App Distribution
を選択するようになっていますが、Xcode11以降ではApple Development
とApple Distribution
を選択しましょう。これを間違えると、後述するProvisioning ProfileをXcodeで読み込めなくなりビルドができない状態になります。
参考: [iPhone] iOS, Certificate 証明書を作ってみる
###3.2 iOS App IDsの登録
-
Identifiers
タブからアプリにつき一つずつ作成します -
com.hogehoge
とcom.から始めたものを作るそうなのでそうするのがいいかと思います
参考: [iPhone] iOS App IDs を登録する
###3.3 開発デバイスの登録
-
Devices
タブから開発に用いるデバイスの登録をします - 登録するにはデバイスのDevice ID(UDID)を知っている必要があります
###3.4 Provisioning Profileの作成
-
Profiles
タブから開発用(iOS App Development
)と配布用(App Store
)の2つを作成します - 区別できるように、それぞれ
Development
やAppStore
などファイル名に入れておくといいです - **TestFlightで配布するには、App Storeを選択してProfileを作成する必要があります。**私は最初どれを選択すればいいか分からず混乱しました。なので、App Store配布もTestFlight配布も同様のProfileになります。
参考: [iPhone] Provisioning Profile を作ってみる
##4. App Store Connectで開発者や内部テスト参加者などを登録する
App Store Connectのユーザーとアクセスからメールアドレスでチームに人を追加します。
以下の役割をチームに追加する人に割り当てることができます。
- Admin
- Finance
- App Manager
- Developer
- Marketing
- Sales
- Customer Support
Account Holderが開発者に対してDeveloper権限を付与することがとりあえず大切です。
##5. (他の)開発者に必要なファイルを渡す
3. Apple Developerで手続きをするで作成した以下のファイルとIDを共有しましょう。
- 開発用と配布用のそれぞれのiOS Certificate
- iOS App IDs
- 開発用と配布用のそれぞれのProvisoning Profile
- p12
p12については今まで触れていませんが、iOS Certificateに付与されている秘密鍵のことです。
【iOS】複雑な証明書周りをあっさり整理してみたではこのように説明されています。
Certificateを作成したあと、ディベロッパーセンターからダウンロードしてダブルクリックすると、
Macのキーチェーンアクセスに自分の作成した証明書とそれに紐づく秘密鍵が表示されます。
秘密鍵を右クリックして書き出すと、「.p12」という拡張子のファイルが作成されます。
また、ダウンロードできるのはAccount Holderに限られるそうです。
p12はダウンロードができないため、
最初にCertificateを作成してダウンロードした人がキーチェーンアクセスから書き出しておく必要があります。
他の人がCeritficateをダウンロードしてダブルクリックしてインストールしても、
鍵がついていない状態の証明書 しかインストールすることができません。
これで開発者がやっと開発できるようになります。
ここまでAcount Holderの方がやってくれれば、以降は開発者がやることです。
##6. Xcodeでの手続き
[iPhone] アプリ申請のためXcodeでアップロードするを元に進めてください。
- 開発を始める前に、Apple Developerで手続きをした証明書や情報を整備する必要があります。
-
Targets
>Signing&Capabilities
で開発用のProvisioning Profileを選択しましょう - 開発者は絶対に5. App Store Connectで開発者や内部テスト参加者などを登録するにあるようにAccount HolderにDeveloper登録を済ましてもらいましょう。これしないとビルドが通りません。
##7. Xcodeでゴリゴリ開発する
煩雑な環境整備を追えたら、あとは思う存分開発しましょう。
##8. XcodeでTestFlightへアップロードする
[iPhone] アプリ申請のためXcodeでアップロードするの後半以降の流れで進めます。
補足すると、
-
Product
>Archive
でビルドする場合は配布用のProvisoning Profileですることに注意します。Targets
>Signing&Capabilities
のProvisioning Profileで変更できます。 - Select a method of distributionはApp Store Connectを選択します
- Select a destinationはUploadを選択します
- 何も設定しないと、Uploadしても自動的に TestFlightで配信されません。
輸出コンプライアンスがありません
とApp Store Connectで表示される為。TestFlightで「輸出コンプライアンスがありません」を表示されないようにする方法を参考にします。