Skip to content

Xcode 15における'libarclite'エラーの解決方法

問題概要

Xcode 15にアップデート後、React Nativeアプリをビルドする際に以下のエラーが発生します:

bash
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フックを追加(推奨)

すべての依存ライブラリのデプロイメントターゲットを一括で更新する

ruby
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

適用手順:

  1. Podfileを開く
  2. 既存のpost_installブロック内に上記コードを追加
  3. ターミナルで以下を実行:
bash
npx pod-install
# または
cd ios && pod install

重要注意点

  • 既存のpost_install処理がある場合はこれを完全に置き換えるのではなく、コードを追加するだけ
  • react_native_post_install(installer)はReact Nativeプロジェクトに必須
  • プロジェクトに合わせて'13.0'を適切なバージョンに調整してください

方法2: Xcodeで手動設定

UI操作で直接ターゲットを更新する

  1. Xcodeでiosフォルダの.xcworkspaceファイルを開く
  2. プロジェクトナビゲータでPodsプロジェクトを選択
  3. すべてのターゲットを選択(Command + A
  4. 各ターゲットのBuild SettingsタブでiOS Deployment Targetを設定

デプロイメントターゲット設定画面

どちらの方法を選ぶべきか

  • Podfile編集:バージョン管理下にあり再現可能で一貫性を保証したい場合
  • Xcode手動設定:即時に問題を確認・解決したい場合。ただしPod再インストール時に設定がリセットされる可能性あり

追加のトラブルシューティング

古いワークアラウンドが問題を引き起こすケース

以下のような不要なカスタム関数がPodfileにある場合、これらのコードを削除することで解決することがあります:

ruby
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に互換ライブラリを追加:

bash
# コマンドラインツールがインストールされていることを確認
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は公式にデプロイメントターゲットを更新する解決法を推奨しています。この方法は最終手段としてのみ使用し、長期的にはターゲットバージョンを見直してください。


再発防止のベストプラクティス

  1. デプロイメントターゲットの統一: アプリと全依存ライブラリで同一バージョンを使用
  2. 定期的なPod更新:
bash
npx pod-install
# または
cd ios && pod update
  1. React Nativeアップグレード: 使用バージョンが古い場合、今回の問題と関連するビルドシステムの修正が含まれた最新バージョンに更新
  2. Xcodeバージョン管理: プロジェクト内に.xcode-versionファイルを配置し、開発者全員が同一Xcodeバージョンを使用
text
15.0

以上を適用することで、Xcode 15環境でも安定したビルドプロセスを維持でき、libarclite関連のビルドエラーを解消できます。