使用 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_SOURCE
和USYM_UPLOAD_AUTH_TOKEN
。在 xcode 构建期间,有两个工具 usymtool
和 process_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 构建:找不到“捆绑程序”