Xcode 9.1で、古いプロジェクトに単体テストターゲットを追加しましたが、テストを実行できません。ターゲットは起動時にクラッシュし、コンソールで次のエラーが発生します。
バンドル「XXXTests」には現在のアーキテクチャのバージョンが含まれていないため、ロードできませんでした*
フル出力:
2017-11-15 11:52:40.973 XXX[54962:16511010] Failed to load test bundle from file:///Users/XXX/Library/Developer/Xcode/DerivedData/XXX-gaxtmzjadfkxzsdciqnpmyczgntj/Build/Products/DEV-iphonesimulator/XXX.app/PlugIns/XXXTests.xctest/: Error Domain=NSCocoaErrorDomain Code=3585 "dlopen_preflight(/Users/XXX/Library/Developer/Xcode/DerivedData/XXX-gaxtmzjadfkxzsdciqnpmyczgntj/Build/Products/DEV-iphonesimulator/XXX.app/PlugIns/XXXTests.xctest/XXXTests): no suitable image found. Did find: /Users/XXX/Library/Developer/Xcode/DerivedData/XXX-gaxtmzjadfkxzsdciqnpmyczgntj/Build/Products/DEV-iphonesimulator/XXX.app/PlugIns/XXXTests.xctest/XXXTests: mach-o, but wrong architecture" UserInfo={NSLocalizedRecoverySuggestion=Try installing a universal version of the bundle., NSFilePath=/Users/XXX/Library/Developer/Xcode/DerivedData/XXX-gaxtmzjadfkxzsdciqnpmyczgntj/Build/Products/DEV-iphonesimulator/XXX.app/PlugIns/XXXTests.xctest/XXXTests, NSLocalizedFailureReason=The bundle doesn’t contain a version for the current architecture., NSLocalizedDescription=The bundle “XXXTests” couldn’t be loaded because it doesn’t contain a version for the current architecture., NSDebugDescription=dlopen_preflight(/Users/XXX/Library/Developer/Xcode/DerivedData/XXX-gaxtmzjadfkxzsdciqnpmyczgntj/Build/Products/DEV-iphonesimulator/XXX.app/PlugIns/XXXTests.xctest/XXXTests): no suitable image found. Did find: /Users/XXX/Library/Developer/Xcode/DerivedData/XXX-gaxtmzjadfkxzsdciqnpmyczgntj/Build/Products/DEV-iphonesimulator/XXX.app/PlugIns/XXXTests.xctest/XXXTests: mach-o, but wrong architecture, NSBundlePath=/Users/XXX/Library/Developer/Xcode/DerivedData/XXX-gaxtmzjadfkxzsdciqnpmyczgntj/Build/Products/DEV-iphonesimulator/XXX.app/PlugIns/XXXTests.xctest}
(そして私が含めなかったいくつかの診断出力)
徹底的にグーグルした後にチェックしたもの:
これを修正するにはどうすればよいですか?
確認してください iOS Deployment target
アプリケーションターゲットとテストターゲットのフィールドは同じです
私も同じ問題を抱えていました。 iOS11.1シミュレーター(テストターゲットの「iOSデプロイメントターゲット」と一致する)で関連するアプリケーションターゲットをビルドして実行するだけで、動作を開始しました。
初めてテストを開始しても、テストホストのビルドがトリガーされなかったようです。後続の実行は必要に応じてビルドをトリガーするようで、すべて問題ありません。
YMMV
Xcodeのバージョンを9.3から10に更新したときに発生しました。私の場合、DerivedDataを削除すると、単体テストが機能します。
私の場合、MacバージョンのOCMock.frameworked
in Link Binary with Libraries
iOSプロジェクトのビルドフレーズ。
それを削除すると、問題は解決しました。
同じエラーが発生しました。そして私にとってそれが機能したのは次のとおりでした: