PC パソコン

Xcode「Archive failed」の原因と解決方法

XcodeでArchiveを実行したときに「Archive failed」と表示される場合、コード署名、Build Settings、依存ライブラリ、ビルドスクリプト、Release構成などに問題がある可能性があります。Archiveは通常のDebugビルドとは異なる設定を使うため、普段は実行できるプロジェクトでも失敗することがあります。

主な原因

  • Release構成のBuild Settingsに誤りがある
  • Signing & Capabilitiesの証明書やProvisioning Profileが一致していない
  • CocoaPodsやSwift Package Managerなどの依存関係に問題がある
  • Run Script Build PhaseがArchive時に失敗している
  • Frameworkやライブラリの検索パスが正しくない
  • Debugでは使える設定やファイルがReleaseでは参照できない

代表的な発生状況

Product > Archiveを実行した直後や、App Store Connectへ提出するためのArchiveを作成しようとしたときに発生します。画面上では「Archive failed」とだけ表示されても、実際の原因はReport Navigatorのログ内にある別のエラーです。

確認手順

  1. Xcode左側のReport Navigatorを開きます。
  2. 失敗したArchiveのログを選択します。
  3. 赤色で表示されている最初のエラーを確認します。
  4. Build SettingsでRelease構成の値を確認します。
  5. Signing & CapabilitiesでTeam、Bundle Identifier、証明書、Provisioning Profileを確認します。
重要: 「Archive failed」は結果を示すメッセージであり、原因そのものではありません。ログ内で最初に発生した具体的なエラーを特定することが最優先です。

解決方法1:Clean Build Folderを実行する

古いビルドキャッシュが原因の場合は、XcodeのProductメニューからClean Build Folderを実行してから再度Archiveします。

解決方法2:DerivedDataを削除する

キャッシュ破損が疑われる場合はDerivedDataを削除します。

rm -rf ~/Library/Developer/Xcode/DerivedData/*

削除後にXcodeを再起動し、プロジェクトを再ビルドしてからArchiveを試します。

解決方法3:Release構成を確認する

ProjectとTargetのBuild Settingsを開き、DebugとReleaseで設定値が大きく異なっていないか確認します。特にFramework Search Paths、Library Search Paths、Swift Compiler設定、Deployment Targetなどを確認します。

解決方法4:コード署名を確認する

Signing & CapabilitiesでAutomatically manage signingを利用している場合は、正しいTeamが選択されているか確認します。手動署名の場合は、Distribution証明書とProvisioning Profileが対象Bundle Identifierと一致している必要があります。

解決方法5:依存ライブラリを再取得する

CocoaPodsを利用している場合は、Podの状態を更新します。

pod install
pod update

Swift Package Managerの場合は、XcodeからPackage Dependenciesの解決やキャッシュ再取得を行います。

解決方法6:Run Script Build Phaseを確認する

Crashlytics、CocoaPods、独自スクリプトなどがArchive時に失敗することがあります。Build Phases内のRun Scriptを確認し、入力ファイル、実行権限、パス、環境変数がRelease構成でも有効か確認してください。

コマンドラインで確認する方法

xcodebuildを使うと、GUIより詳細なログを確認しやすくなります。

xcodebuild -workspace YourApp.xcworkspace -scheme YourApp -configuration Release archive

プロジェクト形式の場合は-workspaceではなく-projectを使用します。

注意点

Archive失敗時に表示される最後の行だけを見て対処すると、根本原因を見落とすことがあります。ログを上から確認し、最初に現れた具体的なエラーを基準に修正してください。また、Debugで正常でもRelease固有の設定に問題がある場合があります。

まとめ

Xcodeの「Archive failed」は、Archive処理中に別のエラーが発生したことを示す総括メッセージです。Report Navigatorで最初の具体的なエラーを確認し、Release設定、コード署名、依存関係、Run Script、キャッシュを順番に確認すると原因を絞り込みやすくなります。