Xcode 15における'libarclite'エラーの解決方法
問題概要
Xcode 15にアップデート後、React Nativeアプリをビルドする際に以下のエラーが発生します:
clang: error: SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the minimum deployment target
このエラーは、Appleが古いバージョンのiOS(11以前)向けに提供していたlibarclite
ライブラリがXcode 15で完全に削除されたことに起因しています。libarclite
は「Objective-C Automatic Reference Counting」(ARC)をサポートする古いランタイムライブラリで、現在では不要となっています。
主な原因要素
- プロジェクトまたは依存ライブラリのデプロイメントターゲットがiOS 11未満に設定されている
- 異なるPodがそれぞれ異なるデプロイメントターゲットバージョンを使用している
- Xcode 15で非推奨ライブラリが完全に廃止された
公式見解
Apple開発者フォーラムの公式声明ではこう述べられています:
libarcliteは古いOSバージョン向けに必要でしたが、現在では不要です。このライブラリに関するエラーが発生する場合、プロジェクト内のすべてのターゲットのデプロイメントターゲットがiOS 11未満に設定されていないか確認し、少なくともiOS 11以上に更新する必要があります。
根本的な解決方法
方法1: Podfileにpost_installフックを追加(推奨)
すべての依存ライブラリのデプロイメントターゲットを一括で更新する
post_install do |installer|
react_native_post_install(installer)
# すべてのPodのデプロイメントターゲットを13.0に設定
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
# その他の既存設定(あれば)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
end
適用手順:
Podfile
を開く- 既存の
post_install
ブロック内に上記コードを追加 - ターミナルで以下を実行:
npx pod-install
# または
cd ios && pod install
重要注意点
- 既存の
post_install
処理がある場合はこれを完全に置き換えるのではなく、コードを追加するだけ react_native_post_install(installer)
はReact Nativeプロジェクトに必須- プロジェクトに合わせて'13.0'を適切なバージョンに調整してください
方法2: Xcodeで手動設定
UI操作で直接ターゲットを更新する
- Xcodeで
ios
フォルダの.xcworkspace
ファイルを開く - プロジェクトナビゲータで
Pods
プロジェクトを選択 - すべてのターゲットを選択(
Command + A
) - 各ターゲットの
Build Settings
タブでiOS Deployment Target
を設定
どちらの方法を選ぶべきか
- Podfile編集:バージョン管理下にあり再現可能で一貫性を保証したい場合
- Xcode手動設定:即時に問題を確認・解決したい場合。ただしPod再インストール時に設定がリセットされる可能性あり
追加のトラブルシューティング
古いワークアラウンドが問題を引き起こすケース
以下のような不要なカスタム関数がPodfile
にある場合、これらのコードを削除することで解決することがあります:
def __apply_Xcode_14_3_RC_post_install_workaround(installer)
# ... 古いワークアラウンドコード ...
end
# post_install内での呼び出しもコメントアウト
post_install do |installer|
# __apply_Xcode_14_3_RC_post_install_workaround(installer) # 削除
end
サポートすべき最低バージョンがiOS 13未満の場合
アプリがどうしてもiOS 11-12をサポートする必要がある場合は、Xcodeに互換ライブラリを追加:
# コマンドラインツールがインストールされていることを確認
xcode-select --install
# libarcliteをダウンロードして配置
mkdir -p /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/
curl -o /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a https://github.com/kamyarelyasi/Libarclite-Files/raw/main/libarclite_iphoneos.a
非推奨のアプローチ
一時的な回避策としては機能しますが、Appleは公式にデプロイメントターゲットを更新する解決法を推奨しています。この方法は最終手段としてのみ使用し、長期的にはターゲットバージョンを見直してください。
再発防止のベストプラクティス
- デプロイメントターゲットの統一: アプリと全依存ライブラリで同一バージョンを使用
- 定期的なPod更新:
npx pod-install
# または
cd ios && pod update
- React Nativeアップグレード: 使用バージョンが古い場合、今回の問題と関連するビルドシステムの修正が含まれた最新バージョンに更新
- Xcodeバージョン管理: プロジェクト内に
.xcode-version
ファイルを配置し、開発者全員が同一Xcodeバージョンを使用
15.0
以上を適用することで、Xcode 15環境でも安定したビルドプロセスを維持でき、libarclite
関連のビルドエラーを解消できます。