fastlaneのアップロードが認証エラーで止まり、App Store Connect API Keyの状態も分からない。
取り消し済みのキーは復旧できません。新しいキーを発行し、旧キーを参照する設定をすべて差し替えてから、実際の配信処理まで検証してください。
fastlaneでアプリのアップロードやTestFlightの管理を自動化している個人開発者・小規模チーム向けです。
公開作業が止まっている場合に、エラーの原因を見分け、リモートMacの認証情報を安全に更新する手順を確認できます。
App Store Connect API Keyの取り消し後にできること
取り消したAPI Keyを再度有効にする方法はありません。Appleの案内に沿って新しいキーを作成し、旧キーを使うlane、CIのシークレット、リモートMac上の設定を置き換えます。Appleのキー管理に関する説明では、秘密鍵は作成後にダウンロードできるのは一度だけとされています。元のp8ファイルを持っていない場合も、再ダウンロードではなく新しいキーの発行が必要です。
急いで復旧するときほど、すべての認証エラーを「キーが取り消された」と決めつけないことが重要です。JWTの生成・有効期限、Key IDとp8ファイルの組み合わせ、APIの権限不足でも、アップロードは失敗します。
| 症状や確認結果 | 考えられる問題 | 次に確認すること |
|---|---|---|
| トークン生成時に失敗する、またはJWTに関するエラーが出る | トークン生成処理や時刻・トークンの有効期間 | fastlaneが読み込む鍵とJWTの生成内容を確認します。AppleはAPIリクエスト用トークンの有効期間を最大20分と案内しています。JWT生成の公式説明を参照してください。 |
| App Store Connect上で対象キーが取り消し済みになっている | API Keyの失効 | 新しいキーを発行し、そのKey IDを使う設定を洗い出します。 |
| 新しいKey IDに替えても認証できない | Key IDとp8の不一致、またはIssuer IDなどの設定違い | 実行環境が実際に読み込むファイルと環境変数を確認します。 |
| 認証できても目的の操作だけ拒否される | キーに付与された役割・権限が不足 | 対象操作に必要な権限と、キーを作成したユーザーの役割を確認します。 |
fastlaneがAPI Keyを無効と報告した場合、最初に何を調べますか。
fastlaneのログから、トークン生成・API認証・権限確認・アップロードのどの段階で止まったかを特定します。ログを共有・保存するときは、p8の内容、JWT、シークレットが含まれていないことを先に確認してください。
キーの種類と移行計画
個人用キーとチーム用キーでは、管理単位と移行の進め方が異なります。Appleのキー作成に関する説明では、個人用キーはユーザーごとに有効なキーを1つだけ持てる一方、チーム用キーは複数作成できます。この差があるため、個人用キーをチーム用キーと同じ手順で並行移行できるとは限りません。Appleの作成・管理ルールで、アカウントの種類と現在の権限を確認してから作業を始めます。
| キーの種類 | 移行時の確認点 | 作業の考え方 |
|---|---|---|
| 個人用キー | 作成者のユーザーと、キーを作成できる権限 | 有効なキー数の制約を踏まえ、切り替え順と停止時間を先に決めます。 |
| チーム用キー | チームの権限設定と、各キーを利用するワークフロー | 新しいキーを用意できる場合は、参照先の更新・検証後に旧キーを取り消す段取りを検討します。 |
疑わしい漏えいがある場合は、公開作業を止めて旧キーを速やかに取り消し、影響する環境とジョブを特定します。計画的なローテーションなら、キーの種類に応じて新旧の切り替え順を決めます。Appleが示すキーの管理条件に反して、個人用キーも新旧を任意に並行利用できると想定しないでください。
新しいp8の設定先
新しいキーを作った後も認証が通らない場合は、fastlaneが参照する値が一組になっているかを確認します。fastlaneのapp_store_connect_api_keyアクションでは、Key IDやIssuer ID、秘密鍵ファイルまたは秘密鍵の内容などを設定します。具体的なパラメーターはfastlane公式アクションの説明で確認できます。
リモートMacでは、ターミナルで想定したファイルを更新したつもりでも、別の作業ディレクトリやCI用環境変数が優先されていることがあります。実行ユーザー、lane、起動元のシェル、シークレット保管先をたどり、実行時にどの設定が選ばれるかを確かめます。fastlaneのApp Store Connect API設定ガイドも、利用中の設定方法に合わせて参照してください。
遠隔環境でfastlaneが使うp8ファイルは、どう差し替えればよいですか。
秘密鍵をリポジトリやクライアントアプリ、ログに貼り付けず、保護されたシークレット保管先またはアクセスを制限したファイルとして配置します。そのうえで、laneや環境変数が新しいファイルを参照していることを確認し、旧キーを使う設定が残っていないか検索します。認証情報の保管場所や運用上の確認事項は、ArmVNCのプライバシーとデータ保護の案内でも確認できます。
復旧の確認を進める順序
復旧は「新しいキーで認証できた」だけで完了とはいえません。API呼び出しが成功しても、署名・アップロード・App Store Connect側の処理が最後まで終わったことまでは保証されないため、段階を分けて確認します。
- [ ] App Store Connectで旧キーの状態を確認し、取り消し済みか、別の認証エラーかを切り分けます。
- [ ] 旧Key IDを参照しているfastlane lane、CI設定、シークレット、リモートMacのジョブを洗い出します。
- [ ] アカウントの種類と権限を確認し、適切な新しいキーを作成します。
- [ ] Key ID、必要なIssuer ID、p8ファイルの対応関係を照合し、fastlaneの実行環境が新しい値を読むことを確かめます。
- [ ] 目的の操作に必要な権限で、影響の小さいAPI操作を試します。
- [ ] 実際のアップロードを行い、アップロード結果とApp Store Connect上の処理状態を別々に確認します。
- [ ] 残存する旧キー参照をなくしたことを再確認し、漏えいが疑われるキーは利用停止状態を維持します。
役割に合ったAPI呼び出しが成功したことは、認証設定の確認にはなりますが、アプリのアップロード完了とは別の判定です。署名済み成果物が送信されたか、App Store Connectで処理が進んだかをそれぞれ確認してください。AppleのApp Store Connect APIの概要では、APIの利用条件と権限の考え方を確認できます。
リモートMacで公開作業を続ける場合は、端末上のファイルだけでなく、CIの起動設定やlaneが読み込む値まで復旧範囲に含めます。作業環境の使い方に不明点があれば、ArmVNCヘルプセンターで利用手順を確認できます。
個人のMacだけで運用すると、端末の停止や空き容量、開発者本人への作業集中が公開の遅れにつながることがあります。一方、専用Macの購入では初期費用と保守が発生し、稼働頻度が低い場合は持て余す可能性もあります。継続的な重負荷処理や物理機器への接続が必要なら自前のMacが適していますが、公開作業用のmacOS環境が一時的に必要な場合は、日本向けのMacレンタルプランでリモートMacを使う方法も比較できます。レンタルを選ぶ場合も、秘密鍵の保管先とアクセス権を先に決めたうえで、復旧後の公開手順を検証してください。
APIキーの再発行後も、ビルド環境を落ち着いて整えましょう
ArmVNCの専有クラウドMacなら、新しい認証情報への差し替えからアップロード確認まで、ご自身の環境で進められます。
