全体の手順
- 自分のPC上で、秘密鍵/公開鍵ペアを生成する
- CSR(Certificate Signing Request - 証明書署名要求)を、(1)の公開鍵を付けてAppleに送る
- (2)の公開鍵を含む証明書を作り、認証局の秘密鍵で暗号化
- (3)の証明書をダウンロードし、キーチェーンへ登録
- App IDを登録
- プロビジョニングファイルの作成
- プロビジョニングファイルをダウンロードし登録
- ビルド設定を行う(BundleID, コードサイニング)
- ビルド、アーカイブ(ipaファイル作成 ※)
証明書の作成 & キーチェーンへの登録 (1-4までの手順)
- 開発用と配布用の2種類がある
- 開発用 (Development)
- 配布用 (Distribution)
- [iPhone] iOS Certificate の作成手順 https://i-app-tec.com/ios/apply-application.html
- 証明書の登録作業は基本同一のMacでしかできない
- 別のMacの場合は初めからやり直し
- 証明書は開発者個人を特定するためのものなので、他人のMacで作った証明書は基本、自分のMacには登録できない
- 後述する方法で秘密鍵を共有すれば可能
AppIDの登録 (5の手順)
- [iPhone] iOS App IDs の登録 https://i-app-tec.com/ios/ios-app-ids.html
- AppleIDとは別物。一度作ると削除できない
- 過去にiTunes Connectに登録したアプリ(AppIDs)は以下に表示される
プロビジョニングファイルの作成 (6-7の手順)
-
iOSアプリ Provisioning Profile の作成 https://i-app-tec.com/ios/provisioning-profile.html
-
App ID
- Bundle ID: com.hoge.AppName
- XCodeのBundleIdentifierと違うとArchiveのValidationでエラーになる
-
Enable Service: Push Notificationなど
-
証明書 Certificate
- ペア鍵
-
端末のUUID
- 公開前にテストする実機のUUID
-
上記3つを結びつける役割
-
プロビジョニングファイルにも開発用・配布用がある
プロビジョニングファイルの役割
- どのアプリ(BundleID)のどの開発者(Certificate)がどの端末(UUID)で動作させるかを判断するためのもの
- 開発用 (Development)
- 製品用 (App Store)
- リリース前のテスト用 (AdHoc)
チームで開発する場合はどうするか?
-
プロビジョニングファイルは証明書を作った開発者のPCじゃないと、Private Keyが無いよとArchiveする時に怒られます
-
複数台のMacでiOSアプリを開発する方法 ~ 開発チームのブログhttp://stpsysdev.blogspot.jp/2015/09/macios.html
ここを参考に本番の証明書を作った開発者の秘密鍵(p12)と証明書を渡せば共有可能です。
ビルドを行う (8-7の手順)
- ここまでできたら後はProduct > Archive
- Validateを実行して通ったら晴れてApple StoreにUploadできます