首页 > 解决方案 > Facebook for swift 4.2 实施错误

问题描述

嗨,我正在开发一个需要 Facebook 登录按钮才能让我们的用户使用 facebook 帐户登录的项目。但问题是我遇到了错误。文档似乎很旧,并且无论如何都无法正常工作。是为了迅速。

我的项目有 swift 4.2。在我的 pod 文件中,我使用了以下依赖项

pod 'FacebookCore' 
pod 'FacebookLogin'

在我的 AppDelegate 下面是我的代码

import FacebookCore

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
  SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
  return true
}

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
  return SDKApplicationDelegate.shared.application(app, open: url, options: options)
}

我收到以下错误。无论我构建了多少次项目以及清理了多少次

错误使用未解析的标识符“SDKApplicationDelegate”

请告诉我这里有什么问题?我必须在这里做什么以及我缺少什么。如果有一些好的 swift 教程,请分享给我一个链接

谢谢

标签: iosfacebook-sdk-4.0swift4.2

解决方案


我发现了一个最近的项目实现FB登录。来了

在 Podfile 中 pod 'FBSDKLoginKit'

在 AppDelegate 中

import UIKit
import FBSDKCoreKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        ApplicationDelegate
            .shared
            .application(application,
                         didFinishLaunchingWithOptions: launchOptions)
        ...
        return true
    }

    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {

            return ApplicationDelegate.shared.application(app, open: url, options: options)
    }
}

编辑 2019/10/29

使用https://developers.facebook.com/docs/swift/implement-the-sdk测试

播客文件:

  pod 'FacebookCore'
  pod 'FacebookLogin'
  pod 'FacebookShare'

应用委托:

import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        ...

        ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
        return true
    }

    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        return ApplicationDelegate.shared.application(app, open: url, options: options)
    }
}

看来他们在文档中犯了一个错误,SDKApplicationDelegate必须重命名ApplicationDelegate


推荐阅读