iOS証明書関連の整理
Obj-c、swiftと開発は経験してきたものの、未だに証明書関連が理解できなかったので、一度自分で整理し直してみることにしました。
アカウント権限
証明書を作成するにはアカウント権限が必要です。まず権限の確認をするため、Developerサイトにアクセスし、Membershipの画面に遷移します。
そこで、ProgramTypeがApple Developer Programになっていること、Your RolesがAdminになっていることを確認します。
なお、証明書を作る場合はAdminが必要ですが、アプリの作成・申請のみであればAppManagerで十分です。
Certificates
Certificatesとは?
「開発を行うMacと、Appleアカウントを紐づけるための証明書」と理解しています。開発用(Development)、ストアおよびテスト配信用(Distribution)、Push配信用とあります。(ここではPush配信の話は除外します)
Apple Distribution (iOS Distribution)
本番・配信用のDistributionには個数制限があり、1アカウント3つまでです。その為、開発MacごとにCertificateを発行するわけにはいきません。まずはひとつのMacでCertificateを発行し、それを他のMacで共有することで対応します。
イレギュラーなケースとしては、受託開発をする際、受託開発側でCertificateを新たに追加するケースなどはあるかもしれません。
有効期限は1年間であり、期限が来るたびに作り直す必要があります。
なお、「Apple Distribution」という名前はXcode 11以降で使用する場合で、以前はiOS Distributionという名前でした。基本的に「Apple Distribution」を使うことになると思います。
Apple Development (iOS App Development)
開発用です。これは個数制限がありません。また、Apple DevelopmentはXcode 11 以降で使用するもので、iOS App Developmentはそれ以前の呼称となります。そのため、こちらも基本「Apple Development」を選択します。
Certificate作成前のMac側での準備
MacとApple IDを紐づける必要があるため、まずMac側の準備をします。
1. キーチェーンアクセスを開く
2. メニューバーから「キーチェーンアクセス」>「証明書アシスタント」>「認証局に証明書を要求」を選択
3. メールアドレスにApple IDのメールアドレス
通称はなんでもOK。Keychainに登録した際表示されます。
CAのメールアドレスは空欄
ディスクに保存にチェック
「鍵ペア情報を指定」のチェックは外す
以上の設定で「続ける」を選択
4. ディスクに保存
以上で生成されたcertSigningRequestファイルを次の証明書の生成時に使用します。
Certificateの作成
DeveloperサイトのCertificates, Identifiers & ProfilesからCertificatesを選択します。その後、右上の+ボタンを押すとAdd iOS Certificateという画面に切り替わります。
- Apple Development:iOS開発用
- Apple Distribution:iOSリリース用(AdHocおよびAppStore)
基本的には上記の2つを作ることになると思います。先述のとおり、「iOS App Development」「iOS Distribution(App Store and Ad Hoc)」はXcode11より前で使うもので、今後使うことはないでしょう。Mac~というものはMacアプリ用なので、iOSアプリの場合は不要です。
その下には「Services」がありますが、Push用になりますので、ここでは説明を割愛いたします。
Continueを押すと、証明書を要求されるため、先ほどキーチェーンアクセスから作ったcertSigningRequestを指定してください。これは、AppStoreのときもAdHoc、Developのときも同じもので大丈夫です。
無事、Certificateが発行されたらDownloadしてダブルクリックすると、キーチェーンに格納されます。(なお、このcertificateは先程のcertSigningRequestを発行したmacでのみ有効となります)
キーチェーンアクセス>左上から「ログイン」選択>左下から「証明書」を選択すると、追加したCertificateが追加されているはずです。
p12ファイルの共有
最初にMacで作った証明書は、開発者間で共有する必要があります。共有したい証明書を選択し、メニューから「2項目を書き出す」を選択します。このとき、秘密鍵も一緒に書き出す必要があるので注意が必要です。
書き出す際はp12ファイルとして書き出します。
「保存」とするとパスワードを聞かれますが、任意ですので必要に応じてパスワードをかけてください。
また、先程少し触れましたが、Certificateファイル(.cerファイル)は発行したmacでのみ有効のため、共有することはできません。このp12ファイルでの共有をしましょう。というのも、Certificateファイルは証明書のみ、p12は証明書に加えて秘密鍵も含めたファイルのためです。そのため、p12の管理は適切に行なってください。
Identifiers/App IDs
アプリのIDです。プラスボタンからアプリIDを生成します。
App ID Descriptionはアプリの説明なので、自由に記載してください。
App ID Suffixは、基本Explicit App IDを選択してBundle IDに自分の作っているBundle IDを入力することになると思います。
App Serviceは後から編集可能なので、現時点で使用すると分かっている機能だけチェックを入れればOKです。これだけです。
Device
実機で検証を行うには、その端末を登録する必要があります。Deviceのプラスボタンから追加します。
Nameは自分が見てわかるような名前を自由につけれます。よくAppleで見るのは「XXのiPhone」とかですね。こんな感じで見れます。
UDIDは端末固有の識別子です。確認方法は以下の通りです。
端末をMacにつなぎ、Xcodeのメニュー>Window>Devices and Simulatorsを選択します。
この画面に表示されているIdentifersがUDIDです。
ちなみに、登録できる端末数に上限があり、一年に一度しかリセットできないので不要な端末の登録はしないようにご注意ください。
Provisioning Profile
Certificates、App ID、端末を合わせたものです。まずは種別を選択します。
基本、以下の3つのどれかを選択することになると思います。
iOS App Development:開発用
Ad Hoc:配布用(社内検証リリースなど)
App Store:ストア提出用
次に、App IDを選択します。
Certificateを選択します。(DevelopとAdHocで少し画面が変わります)
最後に、このProvisioning Profileと紐づける端末を指定します。基本、Select Allを使えばよいと思います。また、App Storeの場合は特定の端末に紐づける必要がないため、この選択画面は表示されません。
最後に、任意の名前をつけて完了です。
出来上がったものをDLし、ダブルクリックするとxcodeに取り込まれます。
XCodeにアカウントを登録する
XCodeのメニューからXcode>Preferenceを選択し、Accountsタブを選択します。次に左下の+ボタンからApple IDとPWを入力することでXcodeにアカウントがひもづきます。
この記事が気に入ったらサポートをしてみませんか?