Facebook for swift 4.2 实施错误

Posted

技术标签:

【中文标题】Facebook for swift 4.2 实施错误【英文标题】:Facebook for swift 4.2 implementation error 【发布时间】:2019-10-29 05:36:22 【问题描述】:

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

我的项目有 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 教程,请分享给我一个链接

谢谢

【问题讨论】:

你可以试试快速pod update 以防万一吗? 是的尝试过......但我认为这是旧文档 【参考方案1】:

我发现了一个最近的项目实现 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 文件:

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

AppDelegate:

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

【讨论】:

据我所知,由于 Swift 文档不起作用,我只是使用 obj-c 之一 developers.facebook.com/docs/facebook-login/ios 知道在 swift 中做什么 您分享的链接并拥有 Obj C 实现 我在测试 swift 文档后更新了我的答案。和我之前做的一样。他们的文档中似乎有一个错误 应用打开url函数已经返回google的GIDSignIn怎么办?

以上是关于Facebook for swift 4.2 实施错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 SWIFT 在 iOS SDK for Facebook 上使用 FBSDKGraphRequest

如何使用 Swift 4.2 创建应用商店应用更新通知机制?

在 Sign-up for Parse 后端获取 Facebook 个人资料图片 (Swift)

AdMob 中介 - Facebook Audience Network “我们没有收到投标请求” (Swift)

在 Swift 中为 iOS 应用程序实现 Facebook Audience Network 广告

多细胞类型swift 4.2