Xcode目标:来自主目标的图像未加载到测试目标中

时间:2017-05-19 10:39:58

标签: ios xcode xcode8

所以,我已经开始使用FBSnapshotTestCase了,一切都按预期工作,除了没有从包中正确加载的图像。我已经测试了,它们被装入另一个包中。

请参阅下面的调试详情:

(lldb) po [NSBundle allBundles]
<__NSArrayI>(
NSBundle </Applications/Xcode.app/Contents/.../Xcode/Agents> (loaded),
NSBundle </.../DerivedData/.../ProjectTests.xctest/Frameworks> (not yet loaded),
NSBundle </.../DerivedData/.../ProjectTests.xctest> (loaded)
)

(lldb) po [NSBundle mainBundle]
NSBundle </Applications/Xcode.app/Contents/.../Xcode/Agents> (loaded)

(lldb) po [NSBundle bundleForClass:[self class]]
NSBundle </.../DerivedData/.../ProjectTests.xctest> (loaded)

因此,当我运行[UIImage imageNamed:@"image"]时,它会返回nil,但是当我运行时:

[UIImage imageNamed:@"image" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]

加载很好。但我不能在应用程序中更改所有图像加载,我不知道如何在故事板中更改它。我尝试过研究,但无法手动设置mainBundle

底线:是否有针对目标设置捆绑包的目标特定配置,还是创建脚本以将资产移动到正确捆绑包的方法?

编辑:

我已经验证所有资产都已检查测试目标,并且它们位于测试目标的Copy Bundle Resources构建阶段内。事实上,它们已被加载,但不知何故主要的捆绑不是我期待的那样

1 个答案:

答案 0 :(得分:1)

按照this guide中的步骤后,它开始工作正常,但我不得不重新配置一些依赖项。 我缺少的是:

  

4)单击Build Settings选项卡并将Bundle Loader设置为$(BUILT_PRODUCTS_DIR)/MyExistingApp.app/MyExistingApp

     

5)将测试主机构建设置设置为$(BUNDLE_LOADER)