首页 > 解决方案 > 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 脚本还是来自终端的命令运行?而且,更重要的是,有人知道如何解决这个问题吗?

标签: iosswiftfirebasecrashlytics

解决方案


截至 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 文件。

您可以ActivityApp Store Connect.

在此处输入图像描述


推荐阅读