使用 Fabric 和 TwitterKit 时应用崩溃

App crash on using Fabric and TwitterKit

我的应用程序 didFinishLaunchingWithOptions 委托方法中有这行代码,它导致崩溃,提示:

'[Fabric] Info.plist 键 "Fabric" 的值必须是 NSDictionary。'

谁能帮我解决这个问题?

这是导致崩溃的代码:

[[Twitter sharedInstance] startWithConsumerKey:@"consumer_key" consumerSecret:@"secret_key"];
[Fabric with:@[[Twitter sharedInstance]]];

来自 Fabric 的 Alex。要使用不同的 Twitter API 密钥或在 apps.twitter.com 上生成的 API 密钥,您在上面的代码中正确声明了它。听起来您可能没有通过 Fabric 应用程序完全启动您的应用程序,并且您的 info.plist 中缺少必需的条目,例如 Fabric APIKey

有关 Fabric Mac 应用程序和 info.plist 的更多信息:

当您通过 Mac 应用程序加入套件时,Fabric 词典条目会注入您的 info.plist。在 Fabric parent 下,将有两个 children 条目:APIKeyKits.

你的 Fabric API 密钥,如果它由于某种原因没有被注入(如果你使用的是 Fabric 应用程序,它应该自动添加)或者你想手动更改它,可以通过访问 https://fabric.io/settings/organizations,单击您的组织,然后单击组织标题下方的 "API Key"。

Kits 数组包含一个 Item X 用于您包含的每个织物套件。如果您包含 Twitter 套件,自动提供的 consumerKey 和 consumerSecret 会列在 KitInfo.

我按照上述步骤操作,但仍然收到此错误

uncaught exception 'TWTRInvalidInitializationException', reason: 'Attempted to call TwitterKit methods before calling the requisite start methods; you must call +[Fabric with:@[Twitter class]] before using the methods on TwitterKit

因为我使用了多个套件,所以我尝试按如下方式对不同的调用进行初始化

[Fabric with:@[[Crashlytics class]]];
[Fabric with:@[[Twitter class]]];

根据 Fabric 文档的 + (instancetype)with:(NSArray *)kitClasses;

Only the first call to this method is honored. Subsequent calls are no-ops. So only Crashlytics was initializing and Twitter got ignored.

解决方法是初始化如下;

[Fabric with:@[[Crashlytics class], [Twitter class]]];