はじめに
iOSアプリ開発をする上で避けて通れない証明書周り。
個人アプリをリリースする過程では、なんとなーく流れ作業でやってしまったこともあり
あまり理解できていなかったので備忘録としてもまとめておきます。
まず、アプリ提出に必ず必要なProvisionigProfile
が何なのかを解説しますね。
ProvisionigProfileとはなんぞや?
下記の3つをまとめたファイルのことを言います。
・正規開発者証明書(p12ファイル)
・デバイス識別子(UDID)
・アプリケーションID(BundleId)
簡単にいうと「誰がどのようなデバイスを使ってて、どんなアプリを作ってるか」
がわかるファイルです。
じゃあこれがなんで必要なの?
なぜProvisionigProfileが必要なのか?
直球に言うと
「ユーザーが実機にアプリをインストールするため」
はい????
もっと深ぼると・・・
・悪意あるアプリをストアに流さないように
・本物のアプリであるということを証明するため
ようするに
「あなたのアプリが信頼できることが証明されていて ユーザーが安全にインストールすることができる」
みたいな意図ですかね。
それではProvisionigProfileの中身3つをそれぞれ端的に解説していきます。
正規開発者証明書
証明書が必要な理由はアプリを誰が作ったか判別するため,アプリが改ざんされていないことを判別するためです。
証明書作成には公開鍵と秘密鍵を生成する必要があり、秘密鍵は、Macのキーチェーンにのみ保管され
秘密鍵を持っているユーザーのみが、そのユーザー本人としてアプリをAppleに提出できます。
ちなみに種類が3種類
iOS Development:開発用
iOS Distribution (AppStore):App Store配布用
iOS Distribution (Ad Hoc):AdHoc配布用 ※下記詳細あり
デバイス識別子(UDID)
製造時に個体ごとに割り当てられる識別番号で、利用者が削除・変更することはできません。
iPhoneの設定画面でも確認できますね。
アプリケーションID(BundleId)
BundleIdは、アプリケーションを識別ために使われます。
BundleIdの文字列は、英数字(A-Z、a-z、0-9)、ハイフン(-)、ピリオド(.)のみで構成しないといけません。
ProvisionigProfile作成のざっくりした流れ
・Mac上で公開鍵・秘密鍵を生成
・公開鍵を含めたCSR(証明書署名要求)をAppleに送り、正規開発者証明書を発行してもらう
※この証明書は、開発用・配布用の1つずつ必要
・取得後、証明書をMacのキーチェーンに登録する
・証明書やアプリID、デバイスなどの情報を元にProvisionigProfileを作成する
AdHoc(評価用配布)とは
App Store を通さず、テスト用や企業内利用のために登録済みのデバイスのみ
にアプリを配布する方法です。
インストールできるデバイスのUDIDをProvisioning Profileに登録する必要があります。
デバイス追加の都度、UDID登録、Provisioning Profile更新、リビルド等の作業が必要です。
証明書が無効になるとアプリが起動できなくなります。
終わりに
かなり端的な説明ですが、さっと整理できたと思います。
次回は証明書周りを自動化できるfastlaneについても書いていきたいと思っております。
間違っている箇所等あればご教授いただけますと幸いです!
少しでも役に立てばLGTMお願いいたします。