web-dev-qa-db-ja.com

Xcode 5は、テストターゲットを追加すると、「ライブラリがロードされていません」というエラーをスローします

[ターゲットの追加]-> [Cocoa Touchユニットテストバンドルの追加]を使用して、Xcode5にテストターゲットを追加してみました。ただし、テストを実行すると、次のエラーが発生します。

2013-09-24 10:43:14.446スタック交換[48895:c07] 読み込みエラー/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests:dlopen(/ Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests、262) :ライブラリがロードされていません: /Developer/Library/Frameworks/XCTest.framework/XCTest参照元:/ Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug- iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange テストの理由:イメージが見つかりませんIDEBundleInjection.c:バンドルの読み込みエラー '/ Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest 'プログラムは終了コード:0で終了しました

なぜこれが機能しないのですか?

30
Arie Litovsky

IOS7シミュレーターでテストを実行する必要があります。 iOS6.xでは動作しません。

76
Arie Litovsky

[全般]タブ-> [展開ターゲット]を7.0に設定することでこれを修正しました(単体テストを「実行」するために使用しているアプリの場合)。メインアプリで7.0より前のバージョンをサポートする場合、これは適切ではありません。ただし、単体テストビルドターゲットには展開ターゲットがないため、そこに設定することはできません。代わりに、単体テストのターゲット([全般]タブ)を、展開ターゲットが7.0のアプリに設定する必要があります。これを行うために「TestApp」を設定できるため、メインアプリのデプロイを制限する必要はありません。

2
Temporaneous

CIサーバーがXcode5.1.1とiOS7.1で構成されていても、まったく同じ問題が発生しました。私は多くのパラメータを試しましたが、最終的に正しいパラメータは-destinationでした。

完全なコマンドの例を次に示します。

xcodebuild -workspace MyApp.xcworkspace -sdk iphonesimulator7.1 -destination "platform=iOS Simulator,name=iPhone Retina (4-inch)" -scheme MyAppTests test

xctool0.1.16でも機能します。

クレジット: http://www.mokten.com/2014/04/xcodebuild-unit-tests-library-not-loaded-no-image-found/

-destinationパラメータを追加しなければならなかった理由を説明できる詳細の1つは、iOS6と7.1の両方のSDKがインストールされていることです。ただし、iOS 6SDKを削除するとどうなるかは確認していません。

HTH

0
Philippe A