我知道有关于这个问题的类似帖子,但似乎没有任何效果。

我正在尝试让我的用户能够注册/登录 Facebook,但我无法让 Facebook SDK 正常工作。

我已经添加了“FBSDKCoreKit.Framework”框架,正如 Facebook 指南所说的那样,以及“ParseFacebookUtils.framework”。当我尝试在我的 AppDelegate.swift 中初始化 facebook 时,这里..

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) ->  Bool {
           Parse.setApplicationId("", clientKey: "")

   PFFacebookUtils.initialize()

   return true

我收到错误消息“使用未解析的标识符‘PFFacebookUtils’”。我遵循了 Parse Docs 中“设置”下的所有步骤。

这一切都在 Swift 中,所以这是我的桥接头文件......
//  Use this file to import your target's public headers that you would like to expose to Swift
#import <Parse/Parse.h>
#import <ParseUI/ParseUI.h>
#import <Bolts/BFTask.h>
#import <ParseFacebookUtils/PFFacebookUtils.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>

我究竟做错了什么?非常沮丧,但我最终会弄清楚的。

最佳答案

从我的想法来看,您可能使用了ParseFacebookUtilsV4.Framework(这是我假设的对Swift的最新支持),而不是ParseFacebookUtils.Framework(旧的或可能需要客观C桥接的版本)。

因此,如果您希望您的应用程序按照您拥有的代码运行,请使用 ParseFacebookUtils.Framework 并避免使用 ParseFacebookUtilsV4.Framework。但是如果你想使用 ParseFacebookUtilsV4.Framework,你必须在你的 swift Appdelegate 中做一些改变:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}

func applicationDidBecomeActive(application: UIApplication) {
  FBSDKAppEvents.activateApp()
}

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
  return FBSDKApplicationDelegate.sharedInstance() .application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}

桥接 header 更改:
#import <FBSDKCoreKit/FBSDKCoreKit.h>

不确定 Utils 导入,但如果需要,请将桥接头中的旧导入代码 #import ParseFacebookUtils/PFFacebookUtils.h 替换为这个
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>

请注意添加 V4 后的微小变化。

我希望我能以某种方式帮助你。

10-07 20:03
查看更多