Fastlane iOS 测试在本地通过,但不是来自 Jenkins

Posted

技术标签:

【中文标题】Fastlane iOS 测试在本地通过,但不是来自 Jenkins【英文标题】:Fastlane iOS tests pass locally but not from Jenkins 【发布时间】:2019-02-27 08:13:30 【问题描述】:

我在 Jenkins 上执行 Fastlane 时遇到了一些问题。 在本地它可以工作,构建成功并运行测试。 但是来自 Jenkins 和 github,构建没有成功。 我想是因为这条线:

PhaseScriptExecution Run\ Script /Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/MyProject-bljizzbrhfznjpgjucmtarcsjmyw/Build/Intermediates.noindex/MyProject.build/Debug-iphonesimulator/Core.build/Script-FC957A9020120D68000F4790.sh

但不要专注于此,我不确定就是这样。

这里是快速文件:

default_platform(:ios)

platform :ios do
desc "Launch Middleware tests"
lane :tests do
  run_tests(workspace: "MyProject.xcworkspace",
            clean: true,
            devices: ["iPhone 8"],
            scheme: "Middleware",
            slack_url: "https://hooks.slack.com/services/...",
            slack_channel: "#myChannel")
  end
end

一些环境变量设置

构建动作:

詹金斯错误

由fastfile创建并由Jenkins执行的命令

【问题讨论】:

【参考方案1】:

我找到了答案,似乎是那个脚本:Script-FC957A9020120D68000F4790.sh,我在 Swift 4 之前使用的是 sourcery。

$PODS_ROOT/Sourcery/bin/sourcery --sources $PROJECT_DIR/Core --templates $PROJECT_DIR/Sourcery/Core/Templates --output $PROJECT_DIR/Core/Sourcery/

Jenkins 无法找到 PODS_ROOT 和 PROJECT_DIR 环境变量。我不再使用 sourcery 所以,我评论了那个脚本,但如果你仍然使用它,我认为你可以将环境变量添加到 jenkins 配置中

【讨论】:

感谢提及脚本名称,它产生了比较我得到的错误并检查文件的想法。

以上是关于Fastlane iOS 测试在本地通过,但不是来自 Jenkins的主要内容,如果未能解决你的问题,请参考以下文章

使用 fastlane 匹配方法在本地 iOS 设备上运行 react-native 应用程序

iOS Swift UI Tests (XCUITests) 稳定性问题 - fastlane scan

Fastlane - 如何通过组将用户添加到 Testflight?

Fastlane 扫描显示零单元测试

ios adhoc安装不工作

无法使用 Ruby 测试 Fastlane 中的目录是不是已存在