使用 fastlane 为 iOS 构建 Unity 游戏失败,缺少 USYM_UPLOAD_AUTH_TOKEN

Posted

技术标签:

【中文标题】使用 fastlane 为 iOS 构建 Unity 游戏失败,缺少 USYM_UPLOAD_AUTH_TOKEN【英文标题】:Building a Unity game for iOS with fastlane fails with missing USYM_UPLOAD_AUTH_TOKEN 【发布时间】:2020-01-07 23:16:16 【问题描述】:

我正在使用 fastlane 为 ios 构建 Unity 游戏,但自从我启用 Unity's Cloud Diagnostics 后,我的 iOS 构建一直失败并显示消息 Please provide an auth token with USYM_UPLOAD_AUTH_TOKEN environment variable

在为应用商店构建时,此错误消息导致 fastlane 在ARCHIVE FAILED 失败。

【问题讨论】:

【参考方案1】:

尝试以下方法让您的构建通过:

如果您从命令行使用-batchmode 构建Unity 项目,请务必将-username-password 也传递给Unity。 [source] 确保您用于登录 Unity 的用户可以访问 Unity's developer dashboard 中的项目 如果您使用的是旧版本的 Unity,请务必升级,有一个 known bug related to this 如果这些都不起作用,请尝试将环境变量USYM_UPLOAD_AUTH_TOKEN 设置为任意值。这将使将符号文件上传到 Unity 的服务器失败,但应该会导致您的构建通过。 [source] 您也可以再次禁用 Unity 云诊断以使其立即工作。

出现此问题是因为启用 Unity 的云诊断会告诉 Xcode 项目将符号文件上传到 Unity 的服务器作为构建游戏的一部分。这样你就有了符号文件来帮助你处理游戏崩溃。

这一切的工作原理:您必须登录 Unity,以便它可以获取用于上传游戏符号文件的令牌。然后,Unity 在生成的Unity-iPhone.xcodeproj/project.pbxproj 中设置值USYM_UPLOAD_URL_SOURCEUSYM_UPLOAD_AUTH_TOKEN。在 xcode 构建期间,有两个工具 usymtoolprocess_symbols.sh 使用这些值将符号发送到 Unity。你可以在~/Library/Logs/Unity/symbol_upload.log找到usymtool的日志。

【讨论】:

【参考方案2】:

同样的问题,我修复了它以在 UnityConnectSettings.asset 中设置禁用的崩溃报告(不是基本解决方案)

CrashReportingSettings:
     m_EventUrl: https://perf-events.cloud.unity3d.com
-    m_Enabled: 1
+    m_Enabled: 0

【讨论】:

以上是关于使用 fastlane 为 iOS 构建 Unity 游戏失败,缺少 USYM_UPLOAD_AUTH_TOKEN的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 fastlane 缩短 Flutter iOS 应用的构建时间

在 Docker 中使用 Fastlane 构建 iOS 应用

Jenkins iOS fastlane 构建:找不到“捆绑程序”

未找到签名证书“​​iOS 开发” - 使用 bitrise/Fastlane 匹配构建应用程序版本

使用 FastLane 自动化 iOS 应用程序

react-native fastlane自动化构建分发应用管理工具for iOS and Android