【发布时间】:2018-10-20 19:26:23
【问题描述】:
在我们的应用中使用 Firebase 时,我遇到了一个相当特殊的场景。在不向项目添加 Crashlytics 和 Fabric 的情况下,当我为项目运行单元测试时,会遇到以下代码:
@try {
[FIRApp configure];
} @catch (NSException *exception) {
DLog(@"**** Unable to configure Firebase due to exception %@", exception.description);
}
在调试单元测试时不会引发异常,因此我假设 Firebase 已配置并且一切正常。测试通过,没有问题。
然后我非常简单地将带有 Fabric 的 Crashlytics 添加到项目中。我将此作为运行脚本添加到项目的构建阶段"${PODS_ROOT}/Fabric/run",然后再次运行单元测试。单元测试失败,我得到:
Terminating app due to uncaught exception 'FABException', reason: '[Fabric] Value of Info.plist key "Fabric" must be a NSDictionary.'
作为一个错误,当我运行项目时,一切都很好。该问题仅在运行测试时出现。我尝试了以下方法:
- 将 Crashlytics 和 Fabric 添加到项目目标中,我得到了同样的错误。
- 我执行了第 1 步以及单元测试目标,但仍然遇到相同的错误。
- 我执行第 2 步,然后我还将 Firebase Core 添加到单元测试目标中,但我仍然遇到相同的错误。
- 我执行第 3 步,然后还将
"${PODS_ROOT}/Fabric/run"添加到运行脚本,但在单元测试目标上仍然出现相同的错误。
我认为 Firebase 未正确初始化,这反过来又导致 Fabric 未正确初始化,从而导致失败。但我不确定如何解决这个问题。任何指导和建议将不胜感激。
【问题讨论】:
-
你不是在关注Firebase Crashlytics documentation吗? Fabric配置出错。
-
@TheTiger 他正在关注文档。我通过从测试目标中删除 pod 'Fabric' 和 'Crashlytics' 解决了这个问题。不过,我也对更好的解决方案感兴趣。
-
你能在新创建的项目中重现这种情况吗?
标签: ios firebase crashlytics google-fabric