我们已经创建了一个测试套件 swift 代码,我们希望在不同的项目中重用它。
我们的计划如下:
我们创建一个 pod,在其中放置不同的帮助器和基类,然后这个 pod 用于不同的项目。我们在 iOS 模拟器上启动并运行它没有问题,但在物理设备上遇到了问题。为了简单起见,这里列出了重现该问题的一小部分步骤。我们以 https://github.com/joemasilotti/JAMTestHelper 的现有 pod 为例因为我们在这里遇到了完全相同的错误。
- 我使用 UI 测试创建示例应用
- 运行
Cmd + U
成功 - 添加具有以下内容的
Podfile
:
target 'TestProjectUITests', :exclusive => true do platform :ios, '9.0' use_frameworks! pod "JAMTestHelper" end
- 运行
pod install
(我用的是0.39.0
版本) - 运行
Cmd + U
出现错误:XCTest' 不包含位码。您必须在启用位码的情况下重建它(Xcode 设置 ENABLE_BITCODE),从供应商处获取更新的库,或者为此目标禁用位码。对于体系结构 arm64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
在谷歌搜索后,解决方案是将启用位代码设置为 NO:http://take.ms/TzN8I
- 运行
Cmd + U
得到绿色构建但测试总是失败。
完整日志如下:
2016-06-13 22:10:06.682 XCTRunner[20405:6816312] Running tests...
2016-06-13 22:10:06.749 XCTRunner[20405:6816312] The bundle “TestProjectUITests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
2016-06-13 22:10:06.749 XCTRunner[20405:6816312] (dlopen_preflight(/var/containers/Bundle/Application/6BE65B3E-8962-40CB-A6E7-D9F1ADE1D743/TestProjectUITests-Runner.app/PlugIns/TestProjectUITests.xctest/TestProjectUITests): Library not loaded: @rpath/JAMTestHelper.framework/JAMTestHelper
Referenced from: /var/containers/Bundle/Application/6BE65B3E-8962-40CB-A6E7-D9F1ADE1D743/TestProjectUITests-Runner.app/PlugIns/TestProjectUITests.xctest/TestProjectUITests
Reason: image not found)
最佳答案
您使用的是哪个 Xcode 版本? JAMTestHelper 至少需要 Xcode 7.2
关于ios - 使用 pod 中的测试代码在物理设备上运行 Xcode ui 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37803639/