Swift UI测试无法在iOS 12.3之前的设备上启动

时间:2019-05-22 14:50:32

标签: ios swift xcode

我正在尝试设置一些UI测试,但无法使其在运行iOS 12.3之前的设备上运行。

即使我启动一个新的swift项目并勾选了“ include UI tests”,并尝试在iOS 12.3之前的设备上立即运行UI测试,我也会得到以下信息:

  

2019-05-22 15:42:41.543630 + 0100 testUITests-Runner [461:45630]运行测试...   2019-05-22 15:42:41.601954 + 0100 testUITests-Runner [461:45630]无法加载捆绑包“ testUITests” ,因为它已损坏或缺少必要的资源。尝试重新安装捆绑软件。   2019-05-22 15:42:41.602043 + 0100 testUITests-Runner [461:45630](dlopen_preflight(/var/containers/Bundle/Application/50D1F2AB-69B9-4C3D-B36B-F84F838E3301/testUITests-Runner.app/PlugIns/ testUITests.xctest / testUITests):库未加载:@ rpath / libswiftCore.dylib     引用自:/var/containers/Bundle/Application/50D1F2AB-69B9-4C3D-B36B-F84F838E3301/testUITests-Runner.app/PlugIns/testUITests.xctest/testUITests     原因:找不到图片

对于Xcode 6 beta版中的相同错误,我已经看到了各种各样的问题和答案,但是那里的建议都没有帮助,包括:

  • 干净的构建
  • 更改证书信任规则
  • 导入CoreLocation
  • 包括一个虚拟swift文件
  • 更改运行路径搜索路径(似乎已在Xcode中修复)
  • 更改“始终嵌入快速标准库”的构建设置

我从Xcode 10.2开始,发现了问题,升级到Xcode 10.3并没有帮助。

在12.2模拟器上运行正常,但在设备上失败。

3 个答案:

答案 0 :(得分:0)

我有2个猜测,

  1. dyld: Library not loaded: @rpath/libswiftCore.dylib

  2. 您是否在组件中下载了ios版本的组件?

打开和关闭计算机,最坏的情况是卸载并重新安装xcode。

答案 1 :(得分:0)

我已经找到了解决此问题的方法,尽管对于将来版本的Xcode不一定可靠,所以请谨慎尝试(也许在Xcode升级后需要重复此过程)。 / p>

如果转到以下目录,则会找到iPhone设备的所有swift库:

 Applications⁩ ▸ ⁨Xcode⁩ ▸ ⁨Contents⁩ ▸ ⁨Developer⁩ ▸ ⁨Toolchains⁩ ▸ XcodeDefault.xctoolchain⁩ ▸ ⁨usr⁩ ▸ ⁨lib⁩ ▸ ⁨swift⁩ ▸ ⁨iphoneos

您可以将它们复制到UI测试目标(不是正在测试的应用程序)中,然后添加复制文件构建阶段以将库捆绑到测试运行器中,以便可以在运行时找到它们。您不需要所有的swift库,下图显示了我发现需要的库:

copy files build phase

⁩值得注意的是,这可能会使模拟器上的测试混乱(毫无疑问,部分原因是这些已复制的快速库是设备的版本),尽管也许有一种解决方法,或者也许如果您不想在模拟器上运行它们,那就很好了

答案 2 :(得分:0)

答案非常简单。只需确保在构建设置中,UI测试目标与应用程序具有相同的部署目标即可。

我已将应用程序更改为iOS 10的目标,但没有想到我需要针对UI测试目标进行相同的更改。

我想这应该是对我们应该自动同步的东西,大概没有理由让它们真正针对不同的版本