我正在尝试设置一些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版中的相同错误,我已经看到了各种各样的问题和答案,但是那里的建议都没有帮助,包括:
我从Xcode 10.2开始,发现了问题,升级到Xcode 10.3并没有帮助。
在12.2模拟器上运行正常,但在设备上失败。
答案 0 :(得分:0)
我有2个猜测,
您是否在组件中下载了ios版本的组件?
打开和关闭计算机,最坏的情况是卸载并重新安装xcode。
答案 1 :(得分:0)
我已经找到了解决此问题的方法,尽管对于将来版本的Xcode不一定可靠,所以请谨慎尝试(也许在Xcode升级后需要重复此过程)。 / p>
如果转到以下目录,则会找到iPhone设备的所有swift库:
Applications ▸ Xcode ▸ Contents ▸ Developer ▸ Toolchains ▸ XcodeDefault.xctoolchain ▸ usr ▸ lib ▸ swift ▸ iphoneos
您可以将它们复制到UI测试目标(不是正在测试的应用程序)中,然后添加复制文件构建阶段以将库捆绑到测试运行器中,以便可以在运行时找到它们。您不需要所有的swift库,下图显示了我发现需要的库:
值得注意的是,这可能会使模拟器上的测试混乱(毫无疑问,部分原因是这些已复制的快速库是设备的版本),尽管也许有一种解决方法,或者也许如果您不想在模拟器上运行它们,那就很好了
答案 2 :(得分:0)
答案非常简单。只需确保在构建设置中,UI测试目标与应用程序具有相同的部署目标即可。
我已将应用程序更改为iOS 10的目标,但没有想到我需要针对UI测试目标进行相同的更改。
我想这应该是对我们应该自动同步的东西,大概没有理由让它们真正针对不同的版本