環境
- XCode 7.3.x
- cocoapods 1.0.1
- サンプルプロジェクト名
UITestExample
問題
UITest
にライブラリを使用しなければ発生しないと思われますが、UnitTestでもQucik
とNimble
を使っていたので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
と比べてみると分かりますね。
解決
リポジトリ上はすでに修正されていますが、現状(1.0.1)は手動で追加するしかなさそうです。
スクリプトのパスは適宜合わせて下さい。
"${SRCROOT}/Pods/Target Support Files/Pods-UITestExampleUITests/Pods-UITestExampleUITests-frameworks.sh"
あるいはリリース前の修正を取り込んでしまう方法もあります(未確認)
gem install cocoapods --pre
これでUITest
が無事に実行されるようになりました。
やはりまだこの辺の情報は少ないですね...解決するのに一苦労。。