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 中。但它说崩溃已经上传。 `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。
[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