LoginSignup
4
5

More than 5 years have passed since last update.

Xcode7.3.xでUITestにライブラリを使用すると実行できない

Posted at

環境

  • XCode 7.3.x
  • cocoapods 1.0.1
  • サンプルプロジェクト名 UITestExample

問題

UITestにライブラリを使用しなければ発生しないと思われますが、UnitTestでもQucikNimbleを使っていたのでUITestでも使用しようと思った際に出たエラーです。

Window > ProjectsからDerivedDataを削除してみるも状況は変わらず。

2016-06-18 12:31:19.994 XCTRunner[62617:221199] Running tests...
2016-06-18 12:31:20.080 XCTRunner[62617:221199] The bundle “UITestExampleUITests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
2016-06-18 12:31:20.080 XCTRunner[62617:221199] (dlopen_preflight(/Users/dev/Library/Developer/Xcode/DerivedData/UITestExample-bgasnjvgdaszzlexqxadtnetdfri/Build/Products/Debug-iphonesimulator/UITestExampleUITests-Runner.app/PlugIns/UITestExampleUITests.xctest/UITestExampleUITests): Library not loaded: @rpath/Nimble.framework/Nimble
  Referenced from: /Users/dev/Library/Developer/Xcode/DerivedData/UITestExample-bgasnjvgdaszzlexqxadtnetdfri/Build/Products/Debug-iphonesimulator/UITestExampleUITests-Runner.app/PlugIns/UITestExampleUITests.xctest/UITestExampleUITests
  Reason: image not found)

原因

cocoapodsがUITestのターゲットのBuild Phases[CP] Embed Pods Frameworksを含んでいないことによるエラーです。
UnitTestのターゲットのBuild Phasesと比べてみると分かりますね。

スクリーンショット 2016-06-18 13.07.14.png

スクリーンショット 2016-06-18 13.07.03.png

解決

リポジトリ上はすでに修正されていますが、現状(1.0.1)は手動で追加するしかなさそうです。

スクリプトのパスは適宜合わせて下さい。

"${SRCROOT}/Pods/Target Support Files/Pods-UITestExampleUITests/Pods-UITestExampleUITests-frameworks.sh"

スクリーンショット 2016-06-18 13.13.54.png

あるいはリリース前の修正を取り込んでしまう方法もあります(未確認)

gem install cocoapods --pre

これでUITestが無事に実行されるようになりました。
やはりまだこの辺の情報は少ないですね...解決するのに一苦労。。

参考情報

4
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5