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

Building a Unity game for iOS with fastlane fails with missing USYM_UPLOAD_AUTH_TOKEN

我正在使用 fastlane, but ever since I enabled Unity's Cloud Diagnostics 为 iOS 构建我的 Unity 游戏,我的 iOS 构建失败并显示消息 Please provide an auth token with USYM_UPLOAD_AUTH_TOKEN environment variable

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

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

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

出现此问题是因为启用 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 的日志

同样的问题,我在UnityConnectSettings.asset(不是根本解决方案)

中修复了它以设置禁用的崩溃报告
CrashReportingSettings:
     m_EventUrl: https://perf-events.cloud.unity3d.com
-    m_Enabled: 1
+    m_Enabled: 0