Xcode 10 - UITests - 原因:找不到图像

qun*_*ayu 19 xcode ios cocoapods swift cocoapods-1.6

我正在尝试为我的应用程序运行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)
Run Code Online (Sandbox Code Playgroud)

我正在使用CocoaPods(1.6.0.beta.1)来安装我的框架.我正在使用swift 4.2和IOS 12运行Xcode10.Git用作其他开发人员的版本控制(也许存在冲突?).

我的目标应用程序在模拟器和真实手机上运行良好,我的单元测试也是如此.但是我的UITest目标一启动就失败了.这个问题在模拟器和真实机器上都会发生.

之前有很多关于这个问题的帖子,但到目前为止他们都没有帮助过我.我之前有过2次孤立事件,第一次通过在UITest单元的pod文件中添加依赖项来解决问题,第二次通过简单地删除目标并将类复制并粘贴回新目标(非建设性) ,但最后的手段).我这次也可以做同样的事情,但这有点浪费时间,我担心将来会再次出现这种情况.

这是我到目前为止所做的:

  1. Clean Xcode构建文件夹并删除派生数据,IOS设备日志和用户数据文件夹.

  2. 重新启动Xcode,Mac,以及我的设备和模拟器,重新克隆存储库,以及pod update && pod install

  3. 有'总是嵌入快速标准库'是的

  4. 检查我的目标应用程序是否正确

  5. 确保在Embed Pod框架中包含违规框架(MapboxGeocoder.framework)

qun*_*ayu 40

所以5天后,我设法解决了自己的问题.

我通过将我的UITests目标移出Podfile中的主应用程序范围来解决它.

从:

target 'App' do
    use_frameworks!

    pods 'Firebase'

    target 'AppUITests' do
        pods 'Testingpod'
    end
end
Run Code Online (Sandbox Code Playgroud)

至:

target 'App' do
    use_frameworks!

    pods 'Firebase'
end

target 'AppUITests' do
    pods 'Testingpod'
end
Run Code Online (Sandbox Code Playgroud)


Eva*_*van 6

在 Cocoapods 问题中找到了另一个建议的解决方案。

由于我的项目是一个框架,所以测试没有宿主应用程序。

更改 Podfile

target 'framework' do
    use_ frameworks!
    pods my_dependencies
    target 'framework_tests' do
        inherit! :search_paths
    end
end
Run Code Online (Sandbox Code Playgroud)

target 'framework' do
    use_ frameworks!
    pods my_dependencies
    target 'framework_tests'
end
Run Code Online (Sandbox Code Playgroud)

https://github.com/CocoaPods/CocoaPods/issues/8139