概要
- リリース済みの iOS アプリで使用している証明書の期限が切れそうなので更新する
- 別の Mac でも同じ iOS アプリを開発するための証明書登録を行う
発端
Apple Developer から「Action Needed: iOS Distribution Certificate Expires in 30 Days」というタイトルのメールが届く。
Your iOS Distribution Certificate will no longer be valid in 30 days. To generate a new certificate, sign in and visit Certificates, Identifiers & Profiles.
iOS Distribution Certificate の期限があと30日で切れるので更新する必要があるとのこと。
証明書 iOS Distribution Certificate を更新する
対応の流れ
- macOS で CertificateSigningRequest.certSigningRequest を生成する
- Apple Developer で Certificate を生成する
- macOS で Certificate をキーチェーンに登録する
- Apple Developer で Provisioning Profile に Certificate を設定する
macOS で CertificateSigningRequest.certSigningRequest を生成する
macOS で キーチェーンアクセス (Keychain Access.app) を起動する。

メニューから [キーチェーンアクセス] → [証明書アシスタント] → [認証局に証明書を要求] を選択。

証明書情報を入力する。
- ユーザのメールアドレス: Apple Developer に登録した Apple ID のメールアドレス
- 通称: キーチェーンアクセス等に表示される通称 (何でも良い)
- CAのメールアドレス: (空のままで)
- 要求の処理: ディスクに保存
- 鍵ペア情報を指定: チェックを入れる

「続ける」をクリックすると、ダイアログが表示されるので、ファイルの保存場所を指定する。
鍵ペア情報を入力する。
- 鍵のサイズ: 2048ビット
- アルゴリズム: RSA

先ほど指定したファイルの保存場所に Certificate Signing Request (CSR) のファイル CertificateSigningRequest.certSigningRequest が保存される。
Apple Developer で Certificate を生成する
Apple Developer にログインして Certificates のページへ移動する。
Certificates の右側にある「+」ボタンをクリックする。

iOS Distribution (App Store and Ad Hoc) を選択し、「Continue」をクリックする。

「Choose File」をクリックして、先ほど生成した CertificateSigningRequest.certSigningRequest ファイルを選択し、「Continue」をクリックする。

「Download」ボタンを押して証明書ファイル ios_distribution.cer をダウンロードする。

このページにはうっすらした色で英文の説明が載っている(上の画像には載っていない)。
Download your certificate to your Mac, then double click the .cer file to install in Keychain Access. Make sure to save a backup copy of your private and public keys somewhere secure.
macOS で Certificate をキーチェーンに登録する
macOS で キーチェーンアクセス (Keychain Access.app) を起動する。
キーチェーンアクセスのメニューから [ファイル] → [読み込む] でダウンロードした証明書ファイル ios_distribution.cer を読み込む。

あるいは証明書ファイル ios_distribution.cer をダブルクリックする。

これでキーチェーンに証明書を追加できる。
Apple Developer で Provisioning Profile に Certificate を設定する
Apple Developer にログインして Profiles のページへ移動する。
該当する Provisioning Profile をクリックする。

「Edit」をクリックする。

Certificates から先ほど生成した Certificate を選択して、「Save」をクリックする。

「Download」をクリックして Provisioning Profile をダウンロードする。

別の Mac に証明書 iOS Distribution Certificate を登録する
対応の流れ
- Certificate 登録済みの Mac で個人情報交換ファイル p12 を書き出す
- 別の Mac で Certificate をキーチェーンに登録する
Certificate 登録済みの Mac で個人情報交換ファイル p12 を書き出す
Certificate 登録済みの Mac で キーチェーンアクセス (Keychain Access.app) を起動する。
ウィンドウ左上の「キーチェーン」にて「ログイン」を選択。ウィンドウ左下の「分類」にて「自分の証明書」を選択。これを選択しておかないと、ファイルを書き出す際に個人情報交換ファイル p12 ファイルがグレーアウトして選択できないことがある。

キーチェーンアクセスに登録した Certificate を右クリックして、iPhone Distribution を書き出す。

ファイル名を指定して p12 ファイルを保存する。
その際、この p12 ファイルを使うためのパスワードを設定する。

別の Mac で Certificate をキーチェーンに登録する
別の Mac の Xcode のメニューから [Xcode] → [Preferences] → [Accounts] → [Manage Certificates] を選択すると、該当の iOS Disutribution Certificate に 「Not in Keychain」 や 「Missing Private Key」 と表示されている状況を解決する。

p12 ファイルをダブルクリックして、設定したパスワードを入力する。

キーチェーンアクセスで確認すると、秘密鍵が登録されているのを確認できる。これでこの Mac でも該当の iOS アプリを開発できる。
