PC パソコン

Xcode Preview「does not contain an archive」の解決方法【静的ライブラリ】

XcodeのSwiftUI Previewで静的ライブラリを含むターゲットを開いたとき、通常のビルドは成功するのに「does not contain an archive」と表示されてPreviewだけが失敗することがあります。Appleは、Xcode 26より前のPreviewsが一部の静的ライブラリを正しく扱えなかった問題をXcode 26で修正しました。本記事では、実ファイルの破損とXcode Preview側の既知問題を切り分け、安全に解決する手順を説明します。

代表的なエラーログ

Xcode Previews could not build the selected scheme
error: '/path/to/libExample.a' does not contain an archive

ライブラリ名やパスはプロジェクトによって異なります。重要なのは、SwiftUI Previewの準備中に静的ライブラリ(通常は.a)に対してdoes not contain an archiveが出る点です。

原因

Xcode 26のリリースノートでは、Previewsが静的ライブラリを処理するときに「does not contain an archive」と誤って判定する問題が解決済みとして記載されています。つまり、.aファイルが有効でも、Xcode 26より前のPreview処理ではアーカイブとして認識できない場合がありました。

重要:この修正はXcode Previewsに固有です。コマンドラインビルドや通常のリンクでも同じメッセージが出る場合は、ファイルの破損、誤ったファイル形式、ビルド途中の生成物など別の原因を先に疑ってください。

発生条件と対象バージョン

  • Xcode 26より前のバージョンを使用している
  • SwiftUI Previewの対象ターゲットが静的ライブラリに直接または間接的に依存している
  • 通常のBuildは成功する一方、Previewの準備だけが失敗することがある
  • 診断ログにdoes not contain an archiveが含まれる

Appleは問題が導入された厳密なXcodeバージョンを公表していません。修正版として公式に確認できるのはXcode 26です。

推奨する解決手順

  1. Xcodeを26以降へ更新する。可能であればAppleの正式リリース版を使用します。
  2. 使用中のXcodeを確認する。複数のXcodeをインストールしている場合は、GUIとコマンドラインが同じ版を参照しているか確認します。
xcodebuild -version
xcode-select -p
  1. Xcodeを終了して再起動し、プロジェクトまたはワークスペースを開き直します。
  2. Product > Clean Build Folderを実行してからPreviewを再開します。
  3. まだ失敗する場合に限り、対象プロジェクトのDerivedDataを削除して再ビルドします。Swift Package Manager経由の依存関係なら、パッケージ解決とキャッシュも確認します。

Xcode 26以降でも再現する場合、Appleは静的ライブラリを添付してFeedback Assistantから報告するよう案内しています。機密情報を含むライブラリを送信する際は、組織の取り扱い方針に従ってください。

更新できない場合の代替策

次の方法は公式修正の代わりではなく、原因切り分けまたは一時的な回避策です。

  • Preview専用のモック実装を用意し、問題の静的ライブラリをPreviewビルドから一時的に外す
  • ライブラリを呼び出す部分を薄いラッパーで分離し、Previewではスタブへ差し替える
  • 静的ライブラリが本当にarアーカイブか、次のコマンドで確認する
xcrun ar -t /path/to/libExample.a

このコマンドがメンバー一覧を返せば、少なくともarアーカイブとして読み取れます。失敗する場合はXcode Previewの既知問題と決めつけず、ライブラリを正しいSDK・プラットフォーム・アーキテクチャ向けに再生成してください。

解決できたか確認する方法

  1. xcodebuild -versionでXcode 26以降であることを確認する
  2. 通常のBuildを実行し、静的ライブラリのリンクが成功することを確認する
  3. SwiftUI PreviewでResumeを実行する
  4. does not contain an archiveが消え、Previewが描画されることを確認する
  5. Simulatorまたは実機でも主要画面を起動し、Previewだけに合わせた変更が実行時の依存関係を壊していないことを確認する

注意点

  • .aという拡張子だけでは有効な静的ライブラリとは限りません。ダウンロード失敗やHTMLエラーページの誤保存でも似た症状になります。
  • アーキテクチャ不一致は通常、building for ... but attempting to linkなど別の診断になります。このエラーと混同しないでください。
  • DerivedDataの削除は再生成可能ですが、最初から繰り返す必要はありません。まずXcodeの更新と実ファイルの検査を優先します。
  • Xcode 26以降でもxcrun ar -tが失敗するライブラリは、Xcode更新だけでは直りません。

まとめ

Xcode Previewだけで静的ライブラリに対するdoes not contain an archiveが出る場合、Xcode 26より前のPreview処理の既知問題に該当する可能性があります。推奨策はXcode 26以降への更新です。ただし、通常のビルドでも同じエラーが出る場合は、xcrun ar -tで実ファイルを検査し、破損や形式違いを先に切り分けてください。

参照した公式情報