2019/05/30 作成方法を追記しました。

はじめに

iOSのアプリをリリースするにあたって大きな関門となるのが、証明書です。
CSR、Certificate、p12、App ID、Provisioning Profile…
初めてリリースする場合は、混乱してしまいがちだと思います。

私が初めてiOSの開発に携わったのは2014年です。
社内の様々な人に教わり、教えてきたおかげで全体像がつかめたので、
このiOSの証明書周りについて図解しながら説明していきたいと思います。



全体像

先述したCSR、Certificate、p12、App ID、Provisioning Profileの関係性は以下のような形になります。

証明書署名要求(CSR:Certificated Signing Request)

証明書署名要求とは

Certificateを作成するために必要な、 認証局へ署名を依頼するメッセージ です。

作成方法

Macのキーチェーンアクセスから証明書アシスタントを使って作成できます。

Certificate

Certificateとは

アプリを作成するために必要な 証明書 です。

作成方法

Appleのディベロッパーセンター(https://developer.apple.com/account/)でCSRファイルをアップロードして作成します。
開発用(Development)と配布用(Distribution)が分かれていますので、
デバッグとストア申請の両方を行いたい場合は、2つ作成してください。

p12

p12とは

証明書に付与されている 秘密鍵 です。

作成方法

Certificateを作成したあと、ディベロッパーセンターからダウンロードしてダブルクリックすると、
Macのキーチェーンアクセスに自分の作成した証明書とそれに紐づく秘密鍵が表示されます。
秘密鍵を右クリックして書き出すと、「.p12」という拡張子のファイルが作成されます。

App ID

App IDとは

アプリを一意に定める ID です。
Appleのアカウントを指すApple IDとは異なるので注意してください。

作成方法

ディベロッパーセンターで登録できます。
App IDは、XCode上で設定するBundle Identifierと同じにする必要があります。

なお、プッシュ通知など一部の機能を使用しない場合はワイルドカード「*」での登録が可能です。

Devices

Devicesとは

iPhone/iPad/iPhod touchなど、 ディベロッパーセンターに登録された端末 を指します。
ディベロッパーセンターに登録すると、開発用端末として利用できるようになります。

作成方法

端末をiTunesにつないで取得できるUDIDを、ディベロッパーセンターに登録します。

Provisioning Profile

Provisioning Profileとは

発行したCeritificateとApp IDを紐付けるファイル です。

作成方法

Certificateと同じく、開発用(Development)と配布用(Distribution)の2つに分かれています。
いずれもディベロッパーセンターから作成できます。
開発用を作成するときは、先程登録したDeviceを選択して作成します。
本番用を作成するときは、Deviceの選択は不要です。
作成後、ダウンロードしてダブルクリックするとXCodeで選択できるようになります。



チームで開発するときの注意点

チームで同じ証明書を用いて1つのサービスを開発する際、
チームメンバーに共有すべきなのは下記の3点です。

  • Certificate
  • p12
  • Provisioning Profile

この中で、CertificateとProvisioning Profileはディベロッパーサイトからダウンロードできます。
p12はダウンロードができないため、
最初にCertificateを作成してダウンロードした人がキーチェーンアクセスから書き出しておく必要があります。
他の人がCeritficateをダウンロードしてダブルクリックしてインストールしても、
鍵がついていない状態の証明書 しかインストールすることができません。
この状態の証明書を使ってビルドはできません。

p12を書き出す前にMacが故障してしまうと証明書署名要求から作り直しになってしまいますので、
証明書を作成した際は 必ずp12を書き出してチームに共有するよう徹底してください。

終わりに

個人開発を行っている場合は習うより慣れろなので、一度すべての作業を通して見ることをおすすめします。
チーム開発の場合は会社、PJTによって運用方法が異なりますので、
必ずチームのリーダーや先輩などに確認をしてから作業するようにしてください。

スポンサーリンク