DevOps / CI/CD

App Store Connectアップロード失敗:2026年対処法

App Store Connectアップロード失敗:2026年対処法

「Archiveは成功したのにApp Store Connectにビルドが出ない」という症状では、すぐに証明書やビルド番号を変更しないでください。

最も確実な解決策は、アーカイブ検証、アカウント権限、コード署名、転送、Apple側の処理を分離し、元のエラーと同じアーカイブで順番に確認することです。 ローカルでは成功し、SSHや自動化タスクだけ失敗する場合は、同じプロジェクトとアーカイブを保った遠隔Mac環境で対照検証します。

初めてApp Store Connectへ送信する独立開発者、XcodeやTransporterのログ位置が分からない開発者に向いています。TestFlight配布やリリース直前に、アップロード経路だけを復旧したい小規模チームにも適しています。

失敗した段階を先に分ける

App Store Connectへのアップロードは、1つの処理に見えても、実際には複数の段階に分かれます。

  • Archive:配布用アーカイブを作成できるか
  • Validate App:アーカイブの内容と配布条件を検証できるか
  • Upload:Xcode、Transporter、コマンドラインなどで転送できるか
  • Processing:App Store Connect側でビルドを処理できるか

Appleは、アップロード後のビルドを処理し、完了後にApp Store Connectへ表示すると説明しています。そのため、転送完了の表示だけではTestFlightで利用できる状態とは限りません。 (developer.apple.com)

最初に次の情報を保存します。

  • エラー全文とエラーコード
  • 発生日時
  • 使用したツール名
  • アプリのバージョン番号
  • ビルド番号
  • 対象のアーカイブファイル
  • 実行したMac、ログイン方法、SSHやCIの有無

同じ失敗を何度も再現するために、先にビルド番号を増やす方法は避けます。原因が処理段階にある場合、再ビルドしても新しい変数が増えるだけです。

注意
Appleの公式状態が Failed の場合、詳細画面のエラー、警告、情報を確認してから再送信します。アップロード失敗時は、次の送信で同じビルド番号を再利用できる場合があります。 (developer.apple.com)

Xcodeの成功と送信成功を同じにしない

なぜXcodeでアーカイブに成功しても送信できないのか

通常のBuildが成功しても、配布用アーカイブが正しいとは限りません。シミュレーターで動くことも、App Store Connectへ提出できることの証明にはなりません。

Xcode Organizerで、次の順に確認します。

  1. 対象スキームが配布対象のアプリになっているか確認します。
  2. Release設定でArchiveを作成します。
  3. Organizerからアーカイブを選択します。
  4. Validate Appを実行します。
  5. 検証ログの最初のエラーを保存します。
  6. 修正後、同じ条件でArchiveとValidate Appを再実行します。

iOSアプリをTestFlightや顧客配布用にアップロードする場合、Appleが受け付けるXcodeの条件にも注意が必要です。Appleの現行案内では、2026年からApp Store ConnectへのアップロードにXcode 14以降が必要とされています。対象プラットフォームによって、ビルドに必要なXcodeとアップロードに使えるXcodeの条件も異なります。 (developer.apple.com)

リリース設定で確認する項目

  • DebugではなくRelease構成になっているか
  • iOS、macOS、Mac Catalystなどの対象が一致しているか
  • 必須リソースがアーカイブに含まれているか
  • 埋め込みフレームワークや拡張機能の署名が揃っているか
  • 使用していないターゲットがアーカイブへ混入していないか
  • アーカイブ内のBundle IDとApp Store Connectのアプリ記録が一致しているか

ここで失敗する場合、Transporterへ切り替えても直りません。まず配布用アーカイブの内容を修正します。

権限、アプリ記録、コード署名を分けて確認する

アップロード権限が不足している場合

App Store Connectへのビルドアップロードには、Account Holder、Admin、App Manager、Developerなどの権限が関係します。個人登録のアカウントで追加されたユーザーは、Apple Developer Programのチーム権限とApp Store Connect上の権限が同じとは限りません。 (developer.apple.com)

次の順番で確認します。

  1. Xcodeで選択しているTeamを確認します。
  2. App Store ConnectのUsers and Accessで対象ユーザーを確認します。
  3. アプリ単位のアクセス範囲を確認します。
  4. Account Holderが最新の契約を承認しているか確認します。
  5. 対象アプリの記録がApp Store Connectに作成済みか確認します。

Appleは、最初のビルドをアップロードする前にアプリ記録を作成する必要があると案内しています。アプリ記録がない状態では、Bundle IDが正しくてもアップロードの関連付けで止まる可能性があります。 (developer.apple.com)

コード署名の不一致を確認する

コード署名では、次の4要素を1つの組み合わせとして確認します。

  • Team
  • App ID
  • Bundle ID
  • Distribution CertificateとProvisioning Profile

Provisioning Profileには対応するApp IDと配布証明書が含まれます。App Store用のProfileを作成するときも、開発時に使ったBundle IDと一致するApp IDを選ぶ必要があります。 (developer.apple.com)

自動署名の場合はXcodeが必要なProfileを管理します。手動署名の場合は、プロジェクト設定、ターゲット設定、Profileの内容を個別に照合します。

経験上の注意
秘密鍵をバックアップせずに証明書やProfileをすべて削除するのは危険です。複数のMacやCI環境で共有している署名資産まで失うと、元のエラーとは別の復旧問題が発生します。

バージョン番号とビルド番号の違い

Appleは、アプリバンドル内のBundle IDとバージョン番号をApp Store Connectのアプリおよびバージョン記録との関連付けに使い、ビルド番号でビルドを一意に識別します。値を変更する前に、Archiveに埋め込まれた値を確認してください。 (developer.apple.com)

同じアプリ記録に別のBundle IDで送信している場合、証明書を作り直しても一致しません。先にXcode Organizerのアーカイブ情報とApp Store Connect側のアプリ情報を並べて確認します。

Transporterの転送失敗と処理失敗を分離する

TransporterでiOSアプリのアップロードに失敗した場合

Transporterでは、警告、エラー、配信ログ、過去の配信履歴を確認できます。ログを確認する前に、同じアーカイブをXcode Organizerから送信し、ツール固有の問題か、アーカイブ自体の問題かを分けます。AppleはTransporter、Xcode、コマンドラインツールなど複数のアップロード経路を案内しています。 (developer.apple.com)

確認する順番は次のとおりです。

  1. 同じアーカイブファイルを使います。
  2. Transporterの配信ログを保存します。
  3. Xcode Organizerで同じアーカイブを送信します。
  4. ログインセッションや認証情報の期限を確認します。
  5. プロキシ、ファイアウォール、VPNの影響を切り分けます。
  6. SSH切断後も処理が継続する実行方法になっているか確認します。
  7. CIやバックグラウンドタスクが終了していないか確認します。

Transporterだけ失敗し、Xcodeでは成功する場合は、アーカイブを作り直す前に認証、セッション、ネットワーク経路、実行ユーザーを確認します。逆に両方で同じ検証エラーが出る場合は、転送ではなくアーカイブまたは署名の問題です。

App Store Connectにビルドが表示されない場合

まずTestFlightのBuild Uploadsと対象アプリのビルド一覧を確認します。Appleの状態表示は、少なくともProcessingFailedCompleteなどに分かれ、それぞれ対応が異なります。 (developer.apple.com)

  • Processing:Apple側で処理中です。24時間を超えて続く場合は、Feedback Assistantまたは開発者サポートへの相談対象です。
  • Failed:ビルド処理で問題が発生しています。詳細画面のエラーを修正してから再送信します。
  • Complete:処理が完了し、テストに利用できる状態です。
  • Invalid Binary:バイナリがアップロード要件を満たしていません。ビルド内容を修正して再送信します。
  • Missing Compliance:輸出コンプライアンス情報が不足しています。必要な質問へ回答します。

Processingのまま見えない場合に、同じアーカイブを短時間で連続送信するのは避けます。まずBuild Uploadsの記録、メール通知、バージョン番号、ビルド番号を確認します。Appleは処理完了後に通知し、処理状態をApp Store Connectに表示すると説明しています。 (developer.apple.com)

失敗原因を残さないための確認チェックリスト

以下は、次の送信前にそのまま使える判定用リストです。

  • [ ] エラー全文、時刻、ツール、バージョン番号、ビルド番号を保存した
  • [ ] Archiveと通常のBuildを別の結果として確認した
  • [ ] Xcode OrganizerでValidate Appを実行した
  • [ ] App Store Connectに対象アプリ記録がある
  • [ ] XcodeのTeamとApp Store Connectの所属チームが一致している
  • [ ] Bundle IDとApp IDが一致している
  • [ ] Distribution CertificateとProvisioning Profileの組み合わせを確認した
  • [ ] 秘密鍵と既存の署名資産をバックアップした
  • [ ] 同じアーカイブをXcodeとTransporterで比較した
  • [ ] SSHやCIのセッション切断で処理が止まらないことを確認した
  • [ ] Build Uploadsの状態がFailedProcessingCompleteのどれかを確認した
  • [ ] Missing Complianceなど追加情報の要求を確認した
  • [ ] Apple側の処理が長時間続く場合だけサポートへログを提出する準備をした

プロジェクトの署名設定を整理したい場合は、iOSの開発環境に関するヘルプも参照できます。リモート環境でログイン方法や実行履歴を確認する場合は、ProxyMacのコンソールを使い、ローカル実行との差分を残しておくと切り分けやすくなります。

App Store Connectアップロード失敗の多くは、証明書だけを交換すれば解決する問題ではありません。失敗段階を特定し、同じアーカイブを使って修正前後の結果を比較することが、最短の復旧につながります。

特に、現在の環境が一時的なMac、切断されやすいSSHセッション、停止しやすい無人タスクで構成されている場合は、ログを保持できる遠隔Macで同じアーカイブを対照テストする価値があります。手元のMacでは成功するのに自動化環境だけ失敗する場合、環境を毎回作り直す方式は署名状態、認証情報、ログの保存場所が変わりやすいからです。

長期的に大量のビルドを処理する場合や物理デバイス、専用周辺機器が必要な場合は、自前のMacが適しています。一方、リリース直前の復旧、臨時のiOS打包、既存アーカイブの再検証が目的なら、ProxyMacの料金プランを確認し、まず必要な期間だけMac環境を確保する方法が現実的です。

アプリのアップロード検証をProxyMacで効率化しませんか

必要なときにリモートMacへ接続し、アーカイブや署名設定を落ち着いて見直せます。
同じアーカイブの再検証や再送信にも活用でき、トラブル発生時の切り分けを効率化できます。