ios - iOS 和 FirebaseCrashlytics
问题描述
我正在尝试按照Firebase Docs上的说明上传缺少的所需 dSYM。但是我坚持运行上传脚本。
在我的构建阶段,我有
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp${SRCROOT}/GoogleService-Info.plist -p ios ${SRCROOT}/appDsyms"
当我尝试使用它构建 iOS 应用程序时,出现错误:
第 4 行:/path/to/Pods/FirebaseCrashlytics/upload-symbols -gsp/path/to/GoogleService-Info.plist -p ios /path/to/appDsyms:没有这样的文件或目录
命令 PhaseScriptExecution 失败,退出代码非零
当我尝试从终端运行脚本时,出现错误:
未提供 Google App ID 或 Google 服务文件
我已经验证我有一个 Google 服务文件,并且能够使用其他依赖它的 firebase 服务来运行我的项目。我以前可以将 Dysm 文件直接上传到 Firebase 控制台,但在 3 月 1 日发生了变化。
该命令应该作为 XCode 脚本还是来自终端的命令运行?而且,更重要的是,有人知道如何解决这个问题吗?
解决方案
截至 2020 年 5 月:
Fabrics
关闭后,许多开发人员都面临这样的问题,因为 Fabric 会自动创建用于上传文件的脚本,而dSYM
我们Xcode
从未关注过它。
现在Fabric
替换为FirebaseCrashlytics
,为了实现这种自动机制,您可以创建一个新的运行脚本并将此脚本粘贴到那里:
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
该脚本将获取 dSYM 文件并将它们上传到 firebase 服务器,以便您查看崩溃情况。
对于多个方案:
如果您的项目有多个方案,您可以通过更改 Google Plist 文件的路径来简单地创建多个此类脚本。
注意:您也可以使用工具[Check here]dSYM
手动上传文件,但最好尽可能自动化该过程。upload-symbols
编辑:2020 年 7 月:
当您在仪表板中看到崩溃的 dSYM 文件丢失时,您可以在提交构建文件以供 Apple 审查或通过 Test Flight 进行测试后立即Crashlytics
上传构建文件,而不是收到电子邮件。dSYM
显示缺失dSYM
是因为bitCode
启用时,App Store Connect
处理二进制帖子上传它并生成一个新的 dSYM 文件。
您可以Activity
从App Store Connect
.
推荐阅读
- string - 用不同大小的字符串替换字符串 python 的切片,但保持结构
- python - 如何使用线程名称从 /proc 中识别线程?
- javascript - 事件侦听器未从 HTML 导入中的 JS 脚本触发
- javascript - 为什么我的算法在我的数组中找不到索引?
- python - 将`print`的输出直接复制到剪贴板
- python - 如何键入提示在函数的本地范围中定义的返回值?
- java - Spring Cloud @SqsListener MessageConversionException:无法从 [java.lang.String] 转换为 GenericMessage
- python - 从不同的文件调用具有相同名称的函数
- floating-point - 通过 HTTP 发送原始浮点值会发生什么情况?
- android - 列表视图中的单选组按钮验证 setOnCheckedChangeListener