Appleは、ビルドの進行状況と完了状態を別々の項目として定義しています(進捗の定義・完了状態の定義)。Xcode Cloudの待機が続く場合は、まず表示中の状態、ワークフローの起動条件、Apple Developer System Statusを確認してください。すべてをローカルプロジェクトの不具合と決めつけず、説明できない遅延が残る場合に限り、別のMacで予備のビルド経路を検証します。
このガイドは、ビルドが始まらず原因を調べている独立開発者、起動設定を確認したいCI担当者、リリース用の代替手順を評価する担当者向けです。
まずXcode Cloudの状態を切り分ける
「待機中」は、ビルドがまだ実行されていない状態です。実行中やエラーとは意味が異なります。App Store ConnectやXcodeに表示された状態を、画面の印象だけで解釈せず、ビルドの進行状況と完了状態の定義に照合します。
次のように、状態ごとに調査先を変えます。
- 待機中:処理が始まっていません。ワークフローの起動条件とサービス状況を確認します。
- 実行中:ビルド処理が進んでいます。長く続く場合は、実行中のアクションとログを確認します。
- 取消・スキップ:ビルドが完了しなかった理由を記録で確認します。自動取消の設定や後続ビルドとの関係も調べます。
- エラー:待機の問題とは切り離し、失敗したアクション、ログ、プロジェクト設定を調べます。
App Store Connectに表示される状態は調査の手掛かりですが、それだけで原因まで確定できるとは限りません。まず「処理が始まったのか」「始まった後に失敗したのか」を分けてください。
ビルドが見当たらないときは起動条件を確認
ビルドが待機しているのか、そもそも作成されていないのかを分けるには、現在のコミットと直近の成功記録を比較します。新しい記録がなければ、ブランチやプルリクエストがワークフローの対象か、ワークフローが有効かを確認します。
Appleのワークフローリファレンスと最初のワークフロー設定ガイドを参照し、次の項目を順に見直します。
- 対象ブランチやプルリクエストが、設定した起動条件に一致しているか。
- 対象のアプリ、プロジェクト、スキームがワークフローに含まれているか。
- ワークフローが有効で、現在の変更に対して実行される設定になっているか。
- 最新コミットに対するビルド記録が存在するか。存在するなら、未起動ではなく待機または実行の段階か。
設定変更後は、同じコミットの記録を確認します。記録自体が作られない場合と、作成後に待機する場合は、調査する場所が異なります。
取消やスキップはコンパイル失敗と分ける
短い間隔でコミットが続いたときは、ワークフローのAuto-cancel Builds設定を確認してください。後続ビルドが先行ビルドに置き換わる挙動が設定されていると、取消やスキップが発生し得ます。これを、ソースコードのコンパイルエラーと同じ扱いにしないことが重要です。設定と状態の意味は、ワークフローリファレンスおよびビルド記録に基づいて判断します。
調査時には、対象コミット、ビルド記録の完了状態、後続ビルドの有無を並べて確認します。「スキップ」とだけ見えても、設定や記録を確認せずに原因を決めつけないでください。
実行開始後のエラーはログと構成を調べる
状態が実行中またはエラーになった時点で、待機の原因探しからビルド内容の調査へ切り替えます。失敗したアクションのログを開き、エラーが出た箇所と、その直前に実行された処理を確認してください。
Appleの一般的な構成・ビルド問題の解決ガイドに沿って、次の順で確認します。
- 失敗したアクションとログ上の最初のエラーを特定します。
- Xcodeの環境、スキーム、ビルド設定がプロジェクトの前提と合っているか確認します。
- パッケージや外部依存関係を、ビルド環境から取得できる構成か調べます。必要に応じて依存関係をXcode Cloudで利用可能にする方法も確認してください。
- Appleの案内に従い、同じコミットをローカルでビルドし、再現するかを調べます。
- ローカルでも失敗する場合はプロジェクト設定や依存関係を優先して調査し、クラウド上だけで起きる場合はログとサービス状況を保存して切り分けます。
Swiftパッケージを使うプロジェクトでは、継続的インテグレーションでパッケージやアプリをビルドする際の説明も確認対象になります。
サービス状況と予備経路を判断する
起動条件に問題が見当たらず、ビルドも始まらない場合は、Apple Developer System Statusで関連サービスの状況を確認します。問題が掲載されていれば、対象ワークフロー、コミット、状態の変化を記録し、復旧後に同じ条件で再確認します。
ステータスページに異常がない場合でも、アカウントやサービス側に問題がないと証明されたわけではありません。ワークフローの設定を確認した記録と、ビルドの状態変化を残し、解消しない場合はAppleの公式サポート経路で問い合わせられるようにします。
判断には、次の比較を使えます。
| 選択肢 | 向いている状況 | 先に確認すること | 判断上の注意 |
|---|---|---|---|
| Xcode Cloudの記録を追う | 待機中、または状態の意味が不明 | 起動条件、ビルド記録、サービス状況 | 状態表示だけでは原因を確定できません |
| Xcode Cloud上のエラーを調べる | ビルドが実行され、失敗した | 失敗アクション、ログ、依存関係 | 待機問題とビルド失敗を混同しません |
| 別のMacで予備経路を検証する | リリース計画上、独立した確認手段が必要 | 同じコミット、Xcode環境、署名、成果物 | Xcode Cloud側の遅延を解消する保証はありません |
別のMacを使う場合も、まず同じコミットでビルド、テスト、成果物の受け渡しまでを確認します。依存関係の取得や署名など、Xcode Cloudと異なる条件があれば記録し、リリース手順として受け入れられるかを判断してください。リモート環境の準備や接続方法は、armrdpの利用ガイドで確認できます。
よくある質問
待機中のビルドは失敗したと判断できますか?
待機中は、ビルド処理がまだ始まっていない状態として扱い、失敗と決めつけないでください。App Store ConnectやXcodeの表示だけで根本原因を推定せず、進捗と完了状態の公式定義をそれぞれ照合します。実行開始後にエラーへ変わった場合は、該当するアクションのログを調べます。
設定とサービスのどちらが原因か、どう切り分けますか?
最初に対象ブランチやプルリクエストがワークフローの起動条件に合うかを確認し、直近の成功ビルドと現在のコミットを比較します。条件に問題がなければApple Developer System Statusを確認します。ステータスページに異常がなくても、アカウントやサービス側の問題がないと証明されたわけではありません。
自動取消やスキップを確認する方法はありますか?
ビルド記録の完了状態と、ワークフローにあるAuto-cancel Buildsの設定を確認してください。後続ビルドに置き換えられた記録は、ソースコードのコンパイル失敗とは区別します。画面上の短い表示だけで判断せず、Appleの状態定義と対象のビルド記録を照らし合わせると、取消とスキップを混同しにくくなります。
予備のビルド手順はどう検証できますか?
同じコミットを使い、プロジェクトで必要なXcode環境、依存関係、署名、テスト、成果物の受け渡しまでを別のMac上で順に確認します。ログと成果物を保存し、通常のリリース手順と差分を記録してください。独立した経路の検証は可能ですが、Xcode Cloud側の待機を解消するものではありません。
ワークフローとサービス状況を確認しても説明できない遅延があり、リリース計画を止められない場合は、予備経路を実プロジェクトで検証する価値があります。Linux環境だけではXcodeを使うビルドを置き換えられず、手元のMacでは共有や継続運用に制約が出る場合があります。一方、常時使う重い処理や物理接続が必要なら、Macの購入が適することもあります。
一時的な検証用Macが必要で、購入前にリモート環境でワークフローを確かめたい場合は、armrdpの日本向けMac環境を選択肢として確認できます。予備経路が納品物まで含めて受け入れ可能かを確かめてから、通常のリリース手順に加えてください。
よくある質問
待機中のビルドは失敗したと判断できますか?
待機中は、ビルド処理がまだ始まっていない状態として扱い、失敗と決めつけないでください。App Store ConnectやXcodeの表示だけで根本原因を推定せず、進捗と完了状態の公式定義をそれぞれ照合します。実行開始後にエラーへ変わった場合は、該当するアクションのログを調べます。
Xcode Cloudの待機が設定によるものか、サービス側の問題かをどう分けますか?
最初に対象ブランチやプルリクエストがワークフローの起動条件に合うかを確認し、直近の成功ビルドと現在のコミットを比較します。条件に問題がなければApple Developer System Statusを確認します。ステータスページに異常がなくても、アカウントやサービス側の問題がないと証明されたわけではありません。
後続のコミットによってビルドが取り消されたか、スキップされたかを確認できますか?
ビルド記録の完了状態と、ワークフローにあるAuto-cancel Buildsの設定を確認してください。後続ビルドに置き換えられた記録は、ソースコードのコンパイル失敗とは区別します。画面上の短い表示だけで判断せず、Appleの状態定義と対象のビルド記録を照らし合わせると、取消とスキップを混同しにくくなります。
Xcode Cloudが使いにくい間、予備のビルド手順をどう検証しますか?
同じコミットを使い、プロジェクトで必要なXcode環境、依存関係、署名、テスト、成果物の受け渡しまでを別のMac上で順に確認します。ログと成果物を保存し、通常のリリース手順と差分を記録してください。独立した経路の検証は可能ですが、Xcode Cloud側の待機を解消するものではありません。
