その他

【Apple Developper】全体像から理解する証明書まわり【iOS】

その他
この記事は約4分で読めます。

プロビジョニングプロファイルやそれに関連する各種証明書などが、iOSアプリのビルドに必要です。検索すれば多くの情報があるので、ある程度適当に進めても問題なく作業できることも多いのですが、エラーなど詰まった場合には、証明書や公開鍵の知識があるとスムーズに解決できます。

ここでは、実際の初回リリースに必要な作業を手順通り紹介しながら、それが全体としてどのように作用するのか、必要なのかを説明します。

最終的な成果物

以下のファイルを作成します。

  • CSR(CertSigningRequestファイル)
  • 開発証明書(.cerファイル)
  • プロビジョニングプロファイル

目的

面倒な手順を行う目的は、

「開発を行うMac、Appleアカウント、そしてApp が正しく結び付けられており、正式な人間が開発・ビルドしています」ということを証明するためです。

CSR(CertSigningRequestファイル)の用意

まずは、開発に使用しているMacとAppleIDを紐付けるためにCSRの準備を行います。

CSRの作成については、検索することで手順が紹介されています。

Macのキーチェーンアクセスで新しい証明書を発行する
独自の認証局(CA)を作成済みの場合は、Macのキーチェーンアクセスで「証明書アシスタント」を使用して証明書を発行できます。

CSRは、その名前の通り 証明書をリクエストするためのファイルです。次に、このCSRを使用して証明書の作成を行います。

証明書(.cerファイル)の作成

CSRを使って、証明書を作成します。証明書は Apple Developper 管理画面より行います。詳しい手順は以下をご参照ください。

[iPhone] iOS, Certificate 証明書を作ってみる | iOS アプリ開発
iOSアプリを開発して公開するためにCertificate(証明書)を作成します。 Certificateは開発用と製品(配布)用の2種類あります。今回は製品用をメインにしますが、開発用もほぼ同じです。プッシュ通知をしたい場合は、ここで明確

前の手順でCSRを作成した際に、秘密鍵と公開鍵のキーペアが作成され、Macに保存されています。今回作成する証明書ファイルはこの鍵に紐付いており、これによって証明書の検証ができるようになっています。

証明書をキーチェーンに登録

Macの「キーチェーン.app」を起動するか、Finderから.cerファイルをダブルクリックすることで、Macのシステムに証明書を登録することができます。

アプリID、検証端末の登録

新規でアプリをストアに申請する場合は、新たにアプリIDを登録する必要があります。

また、ストア配信前に実機で検証する場合は、使用する端末のIDをあらかじめApple Developer サイトより登録します。

詳しくは以下をご参照ください。

[iPhone] iOS App IDs を登録する | iOS アプリ開発
Certificateを作りましたので次は App ID を登録します。Apple IDではありませんので注意。 概要 iOS Certificate の作成手順 iOS App IDs の登録 ⬅︎ Provisioning

Provisioning Profileの作成

Provisioning Profile には、これまでに作成した

  • 証明書情報
  • アプリのID
  • 検証端末のID

がひとまとまりになっています。つまり、

  • 誰がどうする(検証ビルドする?リリースビルドする?)のか: 証明書情報
  • どのアプリなのか: アプリのID
  • どこで起動するのか: 検証端末のID

という、アプリをビルドするにあたって必要な情報がまとまったものになっています。

作成については、以下をご参照ください。

[iPhone] Provisioning Profile を作ってみる | iOS アプリ開発
CertificateとApp IDが作成できたならば、次はProvisioning Profileを作ります。プロビジョニング・プロファイルとは、App ID, Certificate, 端末のUDIDを結びつける役割です。 概要 iOS

ビルドする

あとは、XCodeから Archive を行い、必要なリリース作業を行うことになります。その際、作成したProvisioning Profile をXCodeから選択することになります。

Provisioning Profileはビルドにあたって問題がないか、以下を検証します。

  • Macに保存されたキーペアと証明書に含まれる公開鍵で、本人性を検証
  • ビルドするアプリと、Apple Developperで登録されたAppIDが一致しているか
  • ビルドされたアプリはどの検証端末に使用できるのか
  • …etc

問題があれば、エラーが表示されます。

まとめ

iOSアプリの配布ビルドにあたっては、以下の情報が必要です。

  • 誰が、どの端末で
  • どのアプリを
  • どういう権限で
  • どの端末を対象として. ビルドするのか

これらの情報は、

  • CSR作成 → 証明書発行
  • AppIDの登録 と Apple Developperアカウント
  • 検証端末の登録

によってAppleに共有され、全てをまとめて Provisioning Profile とします。

Xcodeではビルド時に Provisioning Profile によって検証を行い、ビルドに問題がないかチェックを行っています。