iOS
証明書
アプリ申請
プロビジョニングプロファイル

【iOS】アプリ申請/プロビジョニングプロファイル周りの用語解説

いろんなサイトを見る時に、単語の意味がわからなくて困ったのでまとめました。

本当に初心者の人は、太字の解説だけでも知っていれば、役に立つと思います。

もっと詳しいことを知りたい方は、下にリンクを貼っておきますので、参考にしていただければ。

注意


  • iOS開発経験の浅い人向けです

  • 手順については解説していません

  • 参考サイトからの引用多めです(リンク切れが発生した時のことを考えて書き写しています)

  • 情報が古い/間違っている場合、コメントをお願いします


プロビジョニングプロファイル

「どこどこの誰々さん」は「どのアプリケーション」を作っていて、「どのデバイス」を使っているかという情報が書いてあるファイル。

開発中(やAdHoc用)アプリを、iPhone/iPadの実機にインストールするために必要。

アプリケーションID、デバイス識別子、正規開発者証明書の関係をまとめたファイル。


Profile UUID

プロビジョニングプロファイル固有の識別子。作成時に自動的に生成される。

UUID = Universally UniqueIDentifier (全世界で2つ以上のアイテムが同じ値を持つことがない一意な識別子のこと)


正規開発者証明書(.p12ファイル)

キーチェーンに保存されているやつ。

Certificatesから出力できるファイル。暗号化された秘密鍵と証明書(≒公開鍵)のペアなので、扱いには気をつける必要がある。

「どこどこの誰々さん」の部分。

以下の種類がある。


  • iOS Development:開発用

  • iOS Distribution (AppStore):App Store配布用

  • iOS Distribution (Ad Hoc):AdHoc配布用


アプリケーションID(App ID)

アプリケーションを識別するID。

「どのアプリケーション」部分。


App ID Prefix

デフォルトではTeam ID となる


App ID Suffix

以下の二種類がある。


  • Explicit App ID:それぞれのアプリ固有。Bundle
    IDと同じ。配布用はこっち。

  • Wildcard App ID:複数のアプリケーションに使用できる


Team

プロビジョニングプロファイルを作成したAppIDのPrefix。

Appleから自動で採番される、一意のID。


Bundle Identifier(Bundle ID)

App IDからPrefixを除いたもの。

App IDが xxxxx.jp.domainname.appnameの場合はBundle Identifierはjp.domainname.appname


デバイス識別子(UDID)

開発中(やAdHoc用)の、アプリを動かしたいデバイスの識別子。

App Store申請用には不要。

「どのデバイス」部分。


CSRファイル(証明書署名要求)

証明書の申請時に認証局に提出するファイル。 CertSigningRequestファイル。

「自分はどこどこの誰々さんなんです」ってAppleに提出するファイル。

「公開鍵」とその所有者情報、及び申請者が対応する秘密鍵を持っていることを示すために申請者の署名が記載されている。

このファイルに含まれる情報を元に証明書が発行される。


CERファイル(Certificateファイル/証明書ファイル)

公開鍵が誰の公開鍵であるかを証明している もの。暗号化された証明書。

「どこどこの誰々さんである」ってことを証明するもの。身分証明書。

DevelopmentとProductionに分かれており、以下のような種類がある。


  • Development


    • 『iOS AppDevelopment』:iOSアプリ開発用

    • 『Apple Push Notificationservice SSL (Sandbox)』:テストでプッシュ通知を行う際に必要



  • Production


    • 『App Store and Ad Hoc』:アプリの『App Store』への提出や、AdHoc配布用

    • 『Apple Push Notificationservice SSL (Production)』:製品版でプッシュ通知を行う際に必要




CodeSigning

コードサイニング証明書は、ソフトウェア(プログラム)にデジタル署名を行う電子署名用の証明書。

ソフトウェアの配布元を認証し、なりすましや内容の改ざんなどがされていないことを保証する。

「このアプリは、どこどこの誰々さんが作ったもの」ってことを証明するもの。

Code Signing ErrorなどのエラーはProvisioningProfile(Certificates)に登録されていないアカウントでアプリをビルドしようとすることが原因。


アプリの配布の種類


評価用配布(AdHoc)

AppStoreを介さない、最大100台のデバイスまでの限定配布用。

インストールを許可するデバイスのUDIDをProvisioning Profileに登録する必要がある。

デバイス追加の都度、UDID登録、Provisioning Profile更新、リビルド等の作業が必要。

Provisioning Profileの有効期限(1年)が切れるとアプリが起動できなくなる。

アプリの署名に使った証明書が無効になるとアプリが起動できなくなる。

アプリ配布は開発用端末にデバイスを1台ずつUSB接続して行う。


組織内配布(In-House)

社内向けのAppを社員に配布する用。

AppStoreを介さずに、デバイス無制限でアプリ配布可能。

AdHocで必要となる煩雑な作業(UDID管理等)が一切不要。

Provisioning Profileの有効期限(1年)が切れるとアプリが起動できなくなる。

アプリの署名に使った証明書が無効になるとアプリが起動できなくなる。

意図しない関係者(ライセンス契約企業ではない人)でもアプリを実行出来てしまうリスクはあり、In-House版アプリが関係者以外にインストールされないよう厳重管理が必要。

In-House版アプリの利用者はADEP(Apple Developer Enterprise Program)契約主体法人の従業員に限る。


アプリを配布するのに必要なライセンスの種類


Apple Developer Program

個人や法人がアプリをリリースするために必要なライセンス。

1年毎に更新が必要で、登録料は1回あたり11,800円(2019/01/22現在)。

AppStoreで公開する場合、こっち。


Apple Developer Enterprise

台数無制限で組織内にアプリを配布することが可能なライセンス。

こちらも1年毎に更新が必要で、登録料は1回あたり37,800円(2019/01/22現在)。法人に限る。

AppStoreに公開せず、社内配布などの場合、こっち。


その他

知らなくても良いが、知っていると良いかもしれないもの


ipaファイル

コンパイル済みのアプリケーションの情報が入ったzipファイル。

プロビジョニングプロファイルの情報+アプリの情報(名前、バージョン、ビルド番号、バンドルID、対象デバイス)が記録されている。

ipaファイルを直接iPhoneにインストールすることができる。


参考サイト