为后期处理设置 Facebook SDK 会导致控制台中出现错误消息

Posted

技术标签:

【中文标题】为后期处理设置 Facebook SDK 会导致控制台中出现错误消息【英文标题】:Setting up Facebook SDK for post processing leads to error messages in console 【发布时间】:2019-06-06 16:31:32 【问题描述】:

我对此没有明显的影响,但我正处于项目的最后阶段,并试图留意任何警告。每次在 Xcode 控制台中启动时,在application(_:didFinishLaunchingWithOptions) 下将以下行添加到 App Delegate 时,我都会收到 3 个来自 FB 的警告日志:

FBSDKCoreKit.ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)

"...FBSDKLog: FBSDKGraphRequestConnection 无法在 Facebook SDK 初始化之前启动。"

如果我当然删除了这行,那么如果我尝试使用 Facebook 登录,则后处理不会完成并且不会发生登录。那么,健全性检查:我是否应该忽略这些警告?

【问题讨论】:

【参考方案1】:

我刚刚遇到了这个警告。就我而言,它不断出现,而不仅仅是在启动时。原因是我在 Info.plist 中配置了这个。

<key>FacebookAutoInitEnabled</key>
<false/>

我通过在用户接受条款和条件后执行此操作来解决此问题:

ApplicationDelegate.initializeSDK(nil)

免责声明:这并不能直接回答问题,但我想在这里发布它,因为很多人最终可能会在这里搜索此错误消息。我现在遇到了与上述问题相同的问题,我不知道如何摆脱启动时的警告。

更新 iOS SDK 版本 >= 9.0.0

在 9.0.0 版本中删除了 FacebookAutoInitEnabled 标志,需要使用 initializeSDK 方法显式初始化 SDK,或者通过在 applicationDidFinishLaunching 中调用它来隐式初始化 SDK。

➡️CHANGELOG

【讨论】:

这很有帮助,但作为评论可能更好。 @MikePandolfini 我首先将其作为评论,但为了使内容更有条理且不那么混乱,我将其作为答案。 有这方面的文档吗? @neobie 我已经更新了帖子并链接了文档:)【参考方案2】:

Facebook 需要在 AppDidLaunch 中使用一行进行后处理,该行在应用首次启动时会在 SDK 初始化之前运行:https://developers.facebook.com/docs/ios/graph/。因此,当您第一次启动时,这条线没有实际意义,但无论如何 FB 很乐意阻塞您的控制台。如果您删除此行,FB 将无法在应用中正确处理登录,因此我们将不得不忍受这个毫无意义的“警告”。

【讨论】:

以上是关于为后期处理设置 Facebook SDK 会导致控制台中出现错误消息的主要内容,如果未能解决你的问题,请参考以下文章

Facebook SDK + Google SDK:被访问的框架将“document.domain”设置为“facebook.com”

Facebook SDK 登录永远不会在 iOS 9 上回调我的应用程序

为啥 facebook sdk 会自动让我登录 iPhone 上安装的 facebook 应用程序?

Facebook admob 中介 SDK 导致崩溃

Facebook SDK for iOS 处理登录

处理访问令牌的 Facebook PHP SDK