通过 Jenkins 构建的测试将我的 iOS 崩溃上传到 crashlytics 时出现问题

Problems uploading my iOS crash to crashlytics from a test built through Jenkins

在 Xcode 目标构建阶段下,我有一个脚本可以为我的 iOS 应用程序启用 crashlytics。这是由一个 ENABLE_CRASHLYTICS 变量以及是否设置。当我从本地 Xcode 部署到设备时,我可以成功上传强制崩溃,因此脚本可以正常工作。

但是,当涉及到通过我的 Jenkins 作业构建时,崩溃没有被上传。我可以看到我的构建阶段的脚本在运行,但未设置 ENABLE_CRASHLYTICS 变量,因此 crashlytics 被禁用,因此没有来自通过 HockeyApp 分发的测试构建的崩溃报告。

在我的 Jenkins 工作中,在构建 -> 执行 Shell 步骤中,我确实有

ENABLE_CRASHLYTICS=1

我还漏掉了什么吗?

谢谢!

问题是您在 "Execute shell" 步骤中导出 ENABLE_CRASHLYTICS 环境变量。 shell 步骤完成后,该环境就消失了——变量将不会转移到后续构建步骤。

因此,当 Xcode 构建步骤执行时,该特定环境变量不再可用。

您还可以使用 EnvInject plugin 在构建过程中注入环境变量。使用此插件设置的变量将可用于所有后续构建步骤。