ios – ‘FABException’,原因:'[Fabric] Info.plist键的值“Fabric”必须是NSDictionary.使用Firebase和Crashlytics时

前端之家收集整理的这篇文章主要介绍了ios – ‘FABException’,原因:'[Fabric] Info.plist键的值“Fabric”必须是NSDictionary.使用Firebase和Crashlytics时前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们的应用程序中使用Firebase时,我有一个相当特殊的场景.在不向项目添加Crashlytics和Fabric的情况下,当我为项目运行单元测试时,会触及以下代码
@try {
        [FIRApp configure];
} @catch (NSException *exception) {
        DLog(@"**** Unable to configure Firebase due to exception %@",exception.description);
}

在调试单元测试时,不会引发异常,因此我假设已配置firebase并且所有内容都正常工作.测试通过,没有问题.

然后我非常简单地将Crashlytics with Fabric添加到项目中.我将此作为运行脚本添加到项目的构建阶段“${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无法正确初始化,从而导致失败.但我不确定如何解决这个问题.任何指导和建议将不胜感激.

解决方法

错误信息非常简单.

Info.plist中的Fabric键格式不正确.

它必须是一个字典作为其文档中的状态:

https://fabric.io/kits/ios/crashlytics/install

<key>Fabric</key>
    <dict>
        <key>APIKey</key>
        <string>YOUR_FABRIC_API_KEY</string>
        <key>Kits</key>
        <array>
            <dict>
                <key>KitInfo</key>
                <dict/>
                <key>KitName</key>
                <string>Crashlytics</string>
            </dict>
        </array>
    </dict>

猜你在找的iOS相关文章