我正在尝试为我的应用程序运行UItests,但是它一加载就崩溃了。这是错误。
2018-09-29 16:19:49.577151+1000 xxxUITests-Runner[6007:69633] (dlopen_preflight(/Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/xxxUITests): Library not loaded: @rpath/libswiftContacts.dylib
Referenced from: /Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/Frameworks/MapboxGeocoder.framework/MapboxGeocoder
Reason: image not found)
我正在使用CocoaPods(1.6.0.beta.1)安装我的框架。我正在运行带有Swift 4.2和IOS 12的Xcode10。Git与其他开发人员一起用作版本控制(也许有冲突吗?)。
我的目标应用程序在模拟器和真实手机上均可完美运行,因此我的单元测试也是如此。但是我的UITest目标一旦启动就会失败。这个问题在模拟器和真实机器上都会发生。
以前有很多关于此问题的帖子,但到目前为止,它们都没有对我有帮助。之前我有过两次孤立的事件,第一次是通过将依赖项添加到UITest单元的pod文件中来解决的,第二次是通过简单地删除目标并将类复制并粘贴回到新目标中来解决(非构造性,但不得已)。这次我也可以这样做,但是这浪费时间,而且恐怕将来还会再次出现。
这是我到目前为止所做的:
Clean Xcode构建文件夹并删除衍生数据,IOS设备日志和用户数据文件夹。
重新启动Xcode,Mac,我的设备和模拟器,重新克隆的存储库以及pod更新和pod安装
将“始终嵌入快速标准库”设置为是
检查我的目标应用程序是否正确
确保在嵌入式Pod框架中包含有问题的框架(MapboxGeocoder.framework)
答案 0 :(得分:27)
所以5天后,我设法解决了自己的问题。
我通过将UITests目标移出Podfile中的主应用程序范围来解决了这个问题。
发件人:
target 'App' do
use_frameworks!
pods 'Firebase'
target 'AppUITests' do
pods 'Testingpod'
end
end
收件人:
target 'App' do
use_frameworks!
pods 'Firebase'
end
target 'AppUITests' do
pods 'Testingpod'
end
答案 1 :(得分:1)
在Cocoapods问题中发现了另一种解决方案。
由于我的项目是一个框架,因此测试没有主机应用程序。
已更改的Podfile
target 'framework' do
use_ frameworks!
pods my_dependencies
target 'framework_tests' do
inherit! :search_paths
end
end
收件人
target 'framework' do
use_ frameworks!
pods my_dependencies
target 'framework_tests'
end