ios - 使用 pod 中的测试代码在物理设备上运行 Xcode ui 测试

标签 ios xcode swift xcode-ui-testing xcode7.3

我们已经创建了一个测试套件 swift 代码,我们希望在不同的项目中重用它。

我们的计划如下:

我们创建一个 pod,在其中放置不同的帮助器和基类,然后这个 pod 用于不同的项目。我们在 iOS 模拟器上启动并运行它没有问题,但在物理设备上遇到了问题。为了简单起见,这里列出了重现该问题的一小部分步骤。我们以 https://github.com/joemasilotti/JAMTestHelper 的现有 pod 为例因为我们在这里遇到了完全相同的错误。

  1. 我使用 UI 测试创建示例应用
  2. 运行 Cmd + U 成功
  3. 添加具有以下内容的Podfile:
target 'TestProjectUITests', :exclusive => true do
    platform :ios, '9.0'
    use_frameworks!
    pod "JAMTestHelper"
end
  1. 运行pod install(我用的是0.39.0版本)
  2. 运行 Cmd + U 出现错误:XCTest' 不包含位码。您必须在启用位码的情况下重建它(Xcode 设置 ENABLE_BITCODE),从供应商处获取更新的库,或者为此目标禁用位码。对于体系结构 arm64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

在谷歌搜索后,解决方案是将启用位代码设置为 NO:http://take.ms/TzN8I

  1. 运行 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/

相关文章:

ios - 自定义 header "fatal error: unexpectedly found nil while unwrapping an Optional value"

swift - 如何让SCNNode面向当前相机位置?

ios - 在读取 IOS 相机的镜头位置时,我得到了这个荒谬的值

ios - 获取 JSON 中所有对象的特定键值

ios - Xcode 更新不支持 iPhone 5s

ios - 使用 Google Drive SDK iOS 创建文件夹内部文件夹

ios - tableView header透明背景变黑色

swift - 如何让男性或女性用户仅显示在 Tinder 风格的应用程序上

iOS 通用应用程序默认图像

objective-c - 如何以编程方式在 UISegmentControl 中设置 Segment?