アプリケーションの署名とプロビジョニングプロファイル
クライアントからiOS Developer TeamのInvitationがやってきたので、自分の会社のTeamで開発していたものを、そちら用のものにするための調査をしました。
こーゆー切替も初めてでわけがわからず、3ヶ月ぶりに証明書やプロビジョニングプロファイル作りにあたふたしてますが、最初の頃よりは少しましになったかも?
というわけで整理がてらメモ
- 固有のAppIDを持ったバイナリ(アプリ)は、署名(code signing)を行う必要がある。Appleによって認証された開発者(team)の証明書と、その証明書と対になる秘密鍵、そしてAppleの中間証明書(WWDR)を用いて署名が行われる。署名済のアプリは、改竄の有無や作成者の検出が可能となる。
- 証明書には、開発用証明書と配布用証明書の2種類がある。
- 固有のIDを持った端末で、署名済のバイナリを動作させるには、provisioning profileが必要。provisioning profileの役目は、端末とアプリと開発者を紐付けること。端末ID, AppID, 開発者の証明書が一致していないと動かない。
- profileは、開発用、AdHoc配布用、AppStore配布用の3タイプ。AdHocとAppStoreには配布用の証明書を使う。なお、開発用とAdHoc配布用のAppIDには、ワイルドカードを使用可能。
結局のところ
- 開発用としてCSRを作成し、Provisioning Portalに登録して開発証明書を認証してもらう
- 同様に配布用の証明書を認証してもらう
- XcodeのOrganizerでこれらの証明書をimport
- 動作検証用の実機のIDをProvisioning Portalに登録。
- 開発用とAdHoc用、AppIDが決まっているならAppStore用ののProvisioningProfileを作成
- 実機をMacにつないだら、Organizerがあとはうまくやってくれる。
ってな感じでしょうか。
この内容からいくと、XcodeのProjectのCode Signingの設定で証明書を切り替えてやるだけで全てが片付きそうですね。簡単そうでよかった。