Parse+Facebook SDK 问题 - 使用未解析的标识符 'PFFacebookUtils'

Parse+Facebook SDK Issues - Use of Unresolved Identifier 'PFFacebookUtils'

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

我正在尝试让我的用户能够 sign-up/in 使用 Facebook,但我无法让 Facebook SDK 正常工作。

我已经按照 Facebook 指南的说明添加了 'FBSDKCoreKit.Framework' 框架,以及 'ParseFacebookUtils.framework'。当我尝试在 AppDelegate.swift 中初始化 facebook 时,这里..

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

   PFFacebookUtils.initialize()

   return true

我收到 "Use of unresolved identifier 'PFFacebookUtils'" 的错误。我遵循了 Parse Docs 中 'Setup' 下的所有步骤。

这些都在 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>

我做错了什么?很沮丧,但我最终会弄清楚的。

确保您已正确设置桥接头。

如果您在 "Project Navigator" 中单击您的项目,然后单击您的目标,单击构建设置,然后向下滚动到 "Swift Compiler - Code Generation",您应该会看到一行 Objective-C 新娘头.

在这一行中,您需要输入桥接头:

ProjectName/Your-Bridging-Header.h

根据我的想法,您可能使用了 ParseFacebookUtilsV4.Framework(我假设这是对 Swift 的最新支持)而不是 ParseFacebookUtils.Framework(旧的或者可能是那个需要 objective 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 导入,但如果需要,请用这个

替换桥接 header 中的旧导入代码 #import ParseFacebookUtils/PFFacebookUtils.h
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>

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

希望我在某些方面对您有所帮助。

我在 cocoapods 中启用框架时发生了这种情况 (use_frameworks!) -- 添加后 "import ParseFacebookUtilsV4" Xcode 能够找到 PFFFacebookUtils。

试试这个:

import Bolts
import ParseFacebookUtilsV4
import FBSDKCoreKit
import FBSDKLoginKit