【Xcode】 arm64を削除して「Error creating LLDB target」を解決!
はじめに
Xcodeで開発中、突然たくさんのエラーが出てきてアプリがシミュレーターで起動しなくなることがあります。
今回は、エラーの根本原因が「TARGETS」の「Excluded Architectures」にarm64が指定されていたことでした。
この記事では、具体的なエラーの内容と解決方法、そして試したものの効果がなかった方法についてまとめます。
発生したエラーの内容
プロジェクトをビルドしようとしたところ、以下のような複数のエラーが発生しました。
これらのエラーは、単一の原因から連鎖的に引き起こされた可能性が高いです。
ちなみにCocoaPodsでFSCalendarをインストールしています。
Error creating LLDB target at path '~/MyApp.app', target architecture: arm64 : the specified architecture 'arm64--' is not compatible with 'x86_64-apple-ios15.6.0-simulator' in '~/MyApp.app/MyApp'.
Unknown class FSCalendar in Interface Builder file.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setDelegate:]: unrecognized selector sent to instance 0x7fdcab3113a0'
特に注目すべきは、最初の**Error creating LLDB target**です。
このエラーメッセージは、「arm64アーキテクチャがシミュレーターのx86_64と互換性がない」と指摘しています。
解決策:Excluded Architecturesからarm64を削除する
このエラーの根本的な原因は、シミュレーター向けのビルド設定にarm64が含まれていたことです。
通常、シミュレーターはx86_64アーキテクチャで動作するため、arm64(Apple Silicon Macネイティブまたは実機用)のビルド設定は不要です。
以下の手順でarm64を削除することで、エラーが解消されました。
手順
- Xcodeのプロジェクトナビゲーターで、プロジェクトファイルを選択します。
- 「TARGETS」から対象のアプリを選択します。
- 「Build Settings」タブを開きます。
- 検索バーで「Excluded Architectures」と検索します。
- 「Debug」と「Release」の両方、または問題が発生しているビルド設定で、
arm64が指定されていないか確認します。 - もし
arm64が記載されていれば、それを削除します。
解決に至らなかった他の試み
エラー解決のために、以下の方法も試しましたが、今回のケースでは効果がありませんでした。
- Storyboardの再接続: Interface Builderでのクラス設定やOutlet接続の問題を疑い、再度接続し直しました。
- プロジェクトのクリーン: 「Product」 > 「Clean Build Folder」を実行し、ビルドキャッシュをクリアしました。
-
FSCalendarのCustomClass設定:
FSCalendarのInherit Module From Target設定を切り替えましたが、変化はありませんでした。
これらの方法は、他の問題解決には有効な場合がありますが、今回は「ビルドアーキテクチャの不整合」という根本原因には対処できませんでした。
まとめ
Xcodeで「Error creating LLDB target」や「Unknown class ...」「unrecognized selector」などのエラーがシミュレーターで発生した場合、「Excluded Architectures」の設定を確認してみてください。特にApple Silicon Macを使用している場合、シミュレーター向けのビルド設定が不適切になっている可能性があります。
この情報が、同じような問題に直面している方の助けになれば幸いです!
間違っている点があれば、指摘もらえると嬉しいです!