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
我知道有关于此问题的类似帖子,但似乎没有任何效果。
我正在尝试让我的用户能够 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