iOS 上的 Firebase Crashlytics 设置?

Posted

技术标签:

【中文标题】iOS 上的 Firebase Crashlytics 设置?【英文标题】:Firebase Crashlytics setup on iOS? 【发布时间】:2018-05-31 17:17:26 【问题描述】:

我正在尝试将 Firebase Crashlytics 集成到我的 ios 应用中,该应用启用了 Firebase 崩溃报告。我遵循了文档here,但是在运行自定义构建阶段时我的构建总是失败:

"$PODS_ROOT/Fabric/run"

Xcode中的错误如下:

错误:Fabric:配置问题

Fabric API 密钥无效。您的 Fabric 运行脚本构建阶段应包含您的 API 密钥: ./Fabric.framework/运行 INSERT_YOUR_API_KEY INSERT_YOUR_BUILD_SECRET

我没有 Fabric API 密钥,我认为 Firebase 库应该注意他们的 Fabric 密钥。我的项目中有 Info.plist,Firebase 功能齐全,但我无法通过 Fabric 运行阶段。非常感谢任何有关如何解决此问题的帮助!

【问题讨论】:

错误信息很清楚,你必须得到一个API Key 我是这么想的,但是文档清楚地表明您不需要 API 密钥。我终于找到了解决方案,OSX 上的 Fabric.app 会自动在脚本读取的 app-info.plit 文件中设置您的 Fabric api 密钥,如果您不提供它,则会失败。从 info.plist 中删除这个表单,脚本就可以正常工作了。 我错过了在 AppDelegate 中添加 FirebaseApp.configure()。添加后,它工作得很好。 【参考方案1】:

终于想通了,发给可能被同样问题困扰的人。

如果您尝试通过 OSX Fabric.app 安装 Fabric,或者您过去使用过 Fabric Crashlytics,那么它会将您的 Fabric API 密钥添加到您的 Info.plist, Fabric 初始化构建脚本试图读取的内容(我猜)。

删除Fabric 键形成Info.plist 后,脚本即可工作,无需任何键/参数。

Firebase 文档应包含关于此的 sn-p 警告。

【讨论】:

我遇到了完全相同的问题,我关注了您的帖子并删除了 API 密钥。现在可以了。但是,崩溃没有记录在 Firebase 上。知道为什么会发生吗? 遗憾的是没有。它不会记录在 Firebase 中。但它说崩溃已经上传。 ` : [Firebase/Crash][I-CRA100002] 崩溃上传成功:( 1e21a90b1c000000 )` 对于我的项目,必须取消 Fabric 与 Crashlytics 的链接,并且必须执行上述所有操作才能使崩溃日志出现在 Firebase 仪表板中。这似乎只是 iOS 的问题。 轰隆隆!这对我有用!只是想清理我的项目,为 2019 年的全面转型做准备 大家好,我正在将 iOS 应用程序从 Fabric 迁移到 Firebase,并面临类似问题。我的问题是“我们是否需要删除结构初始化(来自AppDelegate)和结构密钥(来自Info.plist)?”如果我们删除它,那么Firebase 就不会崩溃。如果我们不删除它,为什么我们需要将Firebase添加到应用程序中?我的意思是通过将应用程序链接到 Firebase 我们将得到所有的崩溃。【参考方案2】:

如果您密切关注Getting Started 文档,您可能会遇到一些挫折。相信我。我有我的份额。

现在我可以和你分享一下。

    如果您之前为该目标拥有 Fabric RunScript,那么最好删除该目标并创建一个新的,应用 GettingStarted instruction,并将 $(INFOPLIST_PATH) 替换为 GoogleService-Info.plist

    您的 Info.plist 文件中不应再有 Fabric 配置。就是这个东西:<key>Fabric</key><dict>...</dict>。如果你还有这种感觉,是时候说再见了,放下那些感觉,或者面对this issue。

    如果您一直在 Xcode 控制台中看到此问题,[Fabric] failed to download settings Error Domain=FABNetworkError Code=-5... blah blah blah,请先清理该构建文件夹 (shift + cmd + k)。

如果您的下一个构建工作正常,请尝试 force crashing 您的应用并查看 Firebase 上的崩溃日志。

这是我的堆栈:Xcode 10.2.1 | 面料 1.9 | Crashlytics 3.12

【讨论】:

用 GoogleService-Info.plist 替换 $(INFOPLIST_PATH) 修复了它的形式 我坚信他应该工作,但不,它没有......【参考方案3】:

对我来说,问题是我之前使用的是旧的 Fabric,我不得不从我的 info.plist 中删除密钥

【讨论】:

【参考方案4】:

我按照https://fabric.io/kits/ios/crashlytics/install 文档添加了运行脚本并更新了Info.plist,但仍然遇到上述问题。

显然,我不小心添加了两次“新运行脚本阶段”。删除不必要的“运行脚本”后项目编译成功。

Xcode 10.1 面料 1.7.5 Crashlytics 3.10.4

【讨论】:

【参考方案5】:

Documentation

如果您的项目中已经设置了 crashlytics(在迁移的情况下),

    从 Info.plist 中删除结构键(需要删除字典和 Fabric 的键) 关注 文档。(只需要在构建阶段的运行脚本中使用"$PODS_ROOT/Fabric/run",而不是"$PODS_ROOT/Fabric/run" key1 key2

如果您的项目中尚未设置 crashlytics(开始与 firebase crashlytics 的全新集成),只需按照 文档。

【讨论】:

【参考方案6】:

如果您使用 Crashlytics,您可能需要进入您的 Build Phases -> Crashlytics configuration 并将其添加到 shell/bin/sh 部分,如下所示:`set -e

如果 [[ $PODS_ROOT ]];然后 echo "info: Exec Fabric 从 Pod 运行" "$PODS_ROOT/Fabric/run" 您的密钥 别的 回声“信息:从框架执行结构运行” "$PROJECT_DIR/Fabric.framework/run" 您的密钥 菲`

【讨论】:

以上是关于iOS 上的 Firebase Crashlytics 设置?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的 Firebase 远程配置 ArgumentOutOfRangeException

iOS 上的 Firebase 应用检查在构建时崩溃

iOS 上的 Firebase 自动登录失败

iOS 上的 Firebase 动态链接有时会失败

Firebase 从不从 iOS 上的 React Native 连接(模拟器)

iOS 上的 Firebase Crashlytics 设置?