【问题标题】:Facebook iOS SDK does not have FBSDKApplicationDelegate class and its methodsFacebook iOS SDK 没有 FBSDKApplicationDelegate 类及其方法
【发布时间】:2019-09-21 22:13:18
【问题描述】:

我在应用程序中使用 Facebook 登录,因此我使用 cocoapods 在我的应用程序中安装了 FBSDKLoginKit。

我已按照 Facebook 文档完成了除此 FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) 之外的所有步骤。

方法application(application, didFinishLaunchingWithOptions: launchOptions)在FBSDKLoginKit中不可用。

【问题讨论】:

    标签: ios swift facebook


    【解决方案1】:

    我浏览了他们的文档,但他们没有指定任何内容,但我在 ChangeLog (on git) 中找到了以下内容。

    • NS_SWIFT_NAME 已在适用的情况下应用。 Xcode 可以自动修复这些更改中的大部分。

    • UI 元素的 FBSDK 前缀已替换为更简单的 FB 前缀。

    • 已删除所有其他类型的 FBSDK 前缀。 FBSDKError 现在是 CoreError

    因此 FBSDKApplicationDelegate 类现在已重命名为 ApplicationDelegate 以供 swift 开发人员使用。

    对于 Objective-c 开发者来说,这保持不变。

    适用于 5.0.0 之前的 FBSDK 版本

    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
    

    适用于 FBSDK 5.0.0 及更高版本

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

    希望这对其他人有所帮助:)(在 Facebook 更新他们的文档之前)

    关于 5.0.0 版的完整更改日志click here

    【讨论】:

    • 我可能在这里遗漏了一些东西,但是在这些类前面加上 FBSDK 以避免与我们自己的类名混淆难道不是重点吗?
    【解决方案2】:

    如果您使用 Swift,您需要在 5.0 (source here) 之后将其用于 FBSDKLoginKit:

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

    【讨论】:

      【解决方案3】:

      C# 上的其他人,您必须将 ApplicationDelegate 重命名为 FBSDKApplicationDelegate

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 2013-07-16
        • 1970-01-01
        相关资源
        最近更新 更多