チームのiOS CI証明書ローテーションは、まず証明書・秘密鍵・プロビジョニングプロファイルと依存する公開タスクを棚卸しし、Fastlane Matchで段階的に新資産を同期してください。実際のMac CIで構築、アーカイブ、署名を確認した後に、旧資産の退役を判断します。証明書の切替と旧証明書の取り消しは、同じ作業として扱わないでください。
この記事は、署名資産の変更承認と回退責任を定める企業IT担当者向けです。
Fastlane MatchをCIに安全に組み込みたいプラットフォームエンジニアや、更新後のアーカイブを検証するiOSリリース担当者にも役立ちます。
切替前は、証明書の一覧より依存関係を先に整理する
証明書のファイルを集めるだけでは、どのアプリや公開経路に影響するか判断できません。開発用、配布用などの用途を分け、各資産がどの署名タスクで使われるかを確認します。Appleの証明書の種類と管理に関する説明を参照し、資産の用途を開発者アカウントの情報と照合してください。
- 開発者アカウント、Macのキーチェーン、CI設定から、証明書、対応する秘密鍵、プロビジョニングプロファイルを確認します。アプリ識別子や署名方式との対応も記録します。
- App Store向け配布、社内配布、開発用の署名を分け、どのビルド・アーカイブ・配布タスクがそれぞれに依存するかを列挙します。
- 証明書の管理や作成を担うアカウントの権限を確認します。Appleはアカウントの役割ごとに利用できる操作を定めているため、役割とアクセス権の説明に照らして担当者を決めてください。
証明書が見つかっても、対応する秘密鍵がCIから利用できなければ、その環境で署名できるとは限りません。担当者、承認者、緊急時の連絡先も資産台帳に含め、誰が変更を止め、誰が回退を決めるかを明確にします。
変更前は、再現できる署名基準を残す
新しい資産を同期する前に、現行のMac CIで使うXcode、署名ID、プロファイル、対象アプリ、主要なビルドタスクを記録します。直近の成功ログだけでなく、アーカイブの署名情報と、必要な配布経路が現在どの設定に依存するかも確認してください。
- 既存の構築・アーカイブ・配布ワークフローを保存し、切替後に同じ条件で比較できるようにします。
- キーチェーン内の署名IDに秘密鍵が対応しているか、CIの実行ユーザーが必要な鍵へアクセスできるかを確認します。
- チームで署名IDを同期している場合は、Xcodeのチーム署名証明書の共有方法も確認し、Matchによる同期と同じ資産を意図せず別経路で更新しないよう整理します。
プロビジョニングプロファイルは証明書とアプリの条件に結び付いています。Appleのプロファイルの編集・再ダウンロード・再生成手順を確認し、更新対象と既存ワークフローへの影響を切り分けます。
新資産は、旧資産を残したまま用途別に準備する
誰が証明書を作成・管理するかを先に決め、開発者アカウント、Xcode、または既存のFastlane Match運用のどこを正とするかを揃えます。Apple Distribution証明書を更新した場合も、それに対応するプロファイルを確認し、対象アプリと公開経路に合う状態にしてください。
Fastlane Matchの公式アクション説明では、証明書とプロビジョニングプロファイルの同期方法や読み取り専用設定が案内されています。CIで既存資産だけを取得する運用にするなら、読み取り専用の設定を明示し、ビルドジョブが新しい署名資産を作成・変更しないことを分離環境で確かめます。
証明書を取り消してから置き換える手順は、通常のローテーションの初手にしないでください。Appleは、証明書を取り消すと、その証明書を含むプロビジョニングプロファイルが無効になると説明しています。取り消しによる影響はAppleの証明書失効に関する説明で確認できます。
CIへの同期は、読み取り権限と秘密情報の保管を分ける
最初は本番全体ではなく、隔離したMac CI環境と代表的なアプリで新資産を同期します。保管先の復号情報やCI Secretを扱える主体を絞り、通常のビルドジョブに管理者相当の変更権限を持たせない構成を目指します。
- 暗号化された署名資産の保管先、復号用のSecret、CI実行者の権限を別々に記録します。
- CIのSecret管理については、保護された環境でのSecret利用に関する文書を参照し、対象リポジトリや実行環境への公開範囲を確認します。
- ホストが侵害された場合、環境変数や取得済みの秘密情報が漏れる可能性も考慮します。侵害されたRunnerのリスクに関する説明を踏まえ、署名ジョブを実行するMacの信頼境界を決めてください。
Fastlane Matchの読み取り専用設定は、署名資産をCIから変更させないための設定です。実行ホストの隔離や組織内の承認を代替するものではありません。保護環境や承認条件が必要なら、利用するCI基盤の環境とデプロイ保護ルールも併せて確認します。
FAQ:期限前の準備と切替後の確認
Apple Distribution証明書の期限が近づいたら、何から始めますか?
証明書の期限だけで作業を始めず、開発者アカウント、キーチェーン、CI設定、ログを突き合わせます。証明書と秘密鍵、関連するiOS provisioning profile、対象アプリ、公開経路を記録し、変更担当者と回退条件を決めます。新資産の準備中も、現行の公開フローを維持できることを確認してください。
Fastlane MatchでCIに既存資産だけを取得させるには?
読み取り専用の設定を使い、CIの実行で既存の証明書とプロファイルを同期する構成にします。設定は分離環境で確認し、暗号化された保管先の復号情報を必要なジョブだけが利用できるよう管理してください。読み取り専用にしても、CIホストやSecretの保護が自動で保証されるわけではありません。
新しい署名資産がMac CIで使われたことは、何で判断しますか?
パイプラインの成功表示だけでなく、アーカイブの署名IDと埋め込みプロファイルを検査します。代表的なアプリで構築とアーカイブを行い、必要なテスト配布・公開の経路まで確かめてください。切替前のログと照合し、旧資産を参照するワークフローが残っていないことを確認してから展開範囲を広げます。
旧証明書を取り消す前に確認すべきことは何ですか?
新資産で本番の署名ワークフロー、予備のMacノード、関連するアプリを検証し、旧証明書に依存するプロファイルや復旧手段が残っていないかを確認します。取り消しはプロファイルを無効にする場合があるため、影響範囲と承認を記録したうえで判断します。新証明書を作成しただけの段階では取り消さないでください。
切替可否チェックリスト:合格条件に応じて進むか戻す
以下を上から確認し、すべて満たすまでは本番への展開や旧資産の退役に進まないでください。
- [ ] 資産と依存先を特定できた:証明書、秘密鍵、プロファイル、対象アプリ、公開タスク、担当者を記録できた場合は、分離したMac CIで同期を試します。いずれかが不明なら、本番同期を保留して棚卸しに戻ります。
- [ ] 読み取り専用で新資産を取得できた:Fastlane Matchが対象資産を取得し、鍵とプロファイルの対応も確認できた場合は、代表的な構築とアーカイブへ進みます。取得や署名に失敗した場合は、対象範囲を広げず、保管先・権限・資産の対応関係を調査します。
- [ ] 成果物の署名を確認できた:アーカイブの署名IDと埋め込みプロファイルが期待どおりで、必要な配布経路も通った場合は、承認を得て対象ワークフローを広げます。結果が一致しない場合や経路を検証できない場合は、旧構成を維持し、証拠を残して原因を切り分けます。
- [ ] 本番と予備ノードで旧資産への依存がない:新資産で全対象を確認できた場合に限り、旧資産の保管・更新・取り消しを組織の手続きに沿って決めます。依存の有無が不明、または復旧手段が確認できない場合は、退役を保留します。
退役は、全ワークフローの合格後に記録する
切替範囲を広げる際は、アプリ単位で構築、アーカイブ、必要な配布を確認し、署名IDと埋め込みプロファイルの検査結果を残します。Appleはプロファイルと署名ログの関係も説明しているため、プロビジョニングプロファイルと署名ログに関する技術文書を照合に使えます。
すべての本番ワークフローと予備のMacノードが新資産で動作した後、旧資産の最終処置を承認に回します。資産の所有者、変更履歴、検証結果、回退条件、保管・取り消しの決定を監査記録として残してください。未確認の依存がある場合や復旧用の署名材料が他にない場合は、退役を止める判断が必要です。
共有の手元Macだけで運用を続けると、端末の確保、CI用アカウントやキーチェーンの管理、障害時の復旧をチーム内で引き受けることになります。反対に、遠隔のMacを借りても署名資産の承認やSecret管理まで任せられるわけではなく、アクセス権と実行環境の確認はあなたの運用責任として残ります。検証用のMacノードが一時的に足りない場合は、VMSPINのリモートMac利用案内で接続方法を確認し、継続利用を検討する段階では料金と契約内容を既存環境と照らしてください。短期の切替検証にはレンタルが候補になりますが、常時の固定負荷や物理接続が必須なら、自社で管理するMacを含めて比較するのが適切です。