iOSビルドに必要な証明書(p12)とプロビジョニングプロファイルの発行

初めに

以前にGitHub ActionsでAndroidのビルドを行いました。今回はiOSのビルドに必要な証明書の発行を行っていきます

今回必要なものは以下のパラメータを取得するところまで進めていきます。

  • IOS_P12_BASE64 : iOSアプリのコード署名に使用する証明書(.p12ファイル)Base64エンコードした文字列
  • IOS_P12_PASSWORD : .p12 ファイルを書き出す際に設定したパスワード
  • IOS_MOBILEPROVISION_BASE64 : iOSアプリのビルドと配布に使用するプロビジョニングプロファイル(.mobileprovisionファイル)Base64エンコードした文字列
  • APPLE_TEAM_ID : Apple Developer ProgramのTeam ID

ayousanz.hatenadiary.jp

ayousanz.hatenadiary.jp

Apple Developer Programの登録

以下からApple Developer Programに登録します。

developer.apple.com

登録には $99/年かかります。

証明書を発行

Apple Developer Programのページにアクセスをして登録後に証明書を発行します。

以下のアカウントページから証明書を発行します。

まずは,MacPCでキーチェインアプリを起動します。

起動方法は以下を参考にします

support.apple.com

フォルダから キーチェイン と検索をするとアプリが見つかります。

次に 証明書署名要求を行います。

以下の記事を参考に進めます

developer.apple.com

手順は以下になります

  1. /アプリケーション/ユーティリティ/ フォルダにある キーチェーンアクセス.app を起動します。
  2. メニューバーの「キーチェーンアクセス」>「証明書アシスタント」> 「認証局に証明書を要求...」 を選択します。
  3. 「証明書アシスタント」のウィンドウが開いたら、「ユーザのメールアドレス」フィールドにあなたのメールアドレスを入力します。
  4. 「通称」フィールドに、この鍵(キー)の名前を入力します。
  5. 「CAのメールアドレス」フィールドは空のままにしておきます。
  6. 「要求の処理」グループで 「ディスクに保存」 を選択し、「続ける」ボタンをクリックします。

処理を成功すると CertificateSigningRequest.certSigningRequest が生成されます。このファイルを以下のように選択してファイルを送信します。

手続きが進むと 〜.cerが生成されます。

キーチェインに登録

ダウンロードした .cer ファイルを ダブルクリックをして,キーチェインに登録します。

キーチェインから p12ファイルの書き出し

次に証明書(公開鍵)だけでなく、それに対応する秘密鍵も必要になります。これらを安全に持ち運ぶために、.p12 という形式のファイルにまとめます

まずはログインから自分の証明書タブを選択します。

次にその中にある証明書と秘密鍵の両方が選択を選択をします。

二つを選択した状態で p12を書き出します

プロビジョニングプロファイル (.mobileprovision ファイル) の取得

  1. Apple Developer Portal にアクセスし、ログインします
  2. 左側のメニュー(または "Certificates, Identifiers & Profiles" セクション)から "Profiles" を選択します。
  3. 新規で作成するため, + ボタンを押して 以下のように DistributionのAd Hocを選択します

4 進んでいくと,以下のようにデバイスを追加する画面になります。ここで使用したい端末のuuidを取得して登録をします。登録したいiPhone/iPadMacに接続してFinderから確認をすることができます

Base64 エンコードしてシークレットキーに登録

まずは .mobileprovision ファイルのエンコードを行います。

以下のコマンドを実行して,クリップボードにコピーされたものをシークレットキーに登録します。

base64 -i your_adhoc_profile.mobileprovision | pbcopy

次に.p12 ファイルのエンコードを行います。こちらも実行後クリップボードに入るので,そのまま登録を行います。

base64 -i your_distribution_certificate.p12 | pbcopy