Facebook SDK vc & 解析 (w=10=sh)
Facebook SDK v4 & Parse (Swift)
我正在尝试使用 ParseFacebookUtilsv4 和 FacebookSDK v4。经过多次试验,我已经设法将错误减少到 1。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("###",
clientKey: "###")
PFFacebookUtils.initializeFacebookWithLaunchOptions(launchOptions)
}
在这部分中,完全复制自 Parse's iOS Docs - Facebook Setup(昨天为 FBSDKv4 更新),我收到一个错误:
'PFFacebookUtils.Type' does not have a member named 'initializeFacebookWithLaunchOptions'
当我查看 ParseFacebookUtilsv4 的完整文档时,上面写着 ~ 警告:此 class 支持官方 Facebook iOS SDK v4.0+,并且仅可用在 iOS. ~ 上,我看到没有任何 class 叫做 'initializeFacebookWithLaunchOptions';取而代之的是 'initializeFacebookWithApplicationLaunchOptions:'
但是,当我将 AppDelegate.swift / didFinishLaunchingWithOptions 部分更改为:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("###",
clientKey: "###")
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)
}
...我收到一条错误消息,提示“预期为 return 'Bool' 的函数中缺少 return”。然后我尝试添加两者
return true /* AND */ return false // at the end of the function;
...我遇到了 9 次崩溃,例如:
i.stack.imgur.com/o989R.png
我完全卡住了,不知道如何解决这个问题。
根据您的错误日志,我认为您缺少依赖项,或者您在此处添加了依赖项但尚未将它们包含在您的项目中。
我认为您的 Facebook SDK 未包含在构建目标中,因为缺少的符号具有 FB 前缀。
找到我的答案:
我不得不在我的桥接中导入 FBSDKLoginKit header(最近更新的 Parse Doc 中没有提到)。
所以我的 bridging-header 看起来像:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
#import <Parse/Parse.h>
#import <Bolts/Bolts.h>
您应该转到 PFFacebookUtils.h 头文件中的 PFFacebookUtils.h 并更改:
(void)initializeFacebookWithApplicationLaunchOptions:(NSDictionary *)launchOptions;
收件人:
(void)initializeFacebookWithApplicationLaunchOptions:(PF_NULLABLE NSDictionary *)launchOptions;
它会起作用的!
参考文献 https://developers.facebook.com/bugs/1462780714012820/
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions]; //works
[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions]; //does not compile or work
上面的第一行对我有用。好像他们忘记更新文档了。
我遇到了同样的问题,必须实施上面的两个建议才能使我的应用程序 运行 没有问题。
首先我从 FB SDK 添加了 FBSDKLoginKit 并导入它。(感谢 senty)
#import <FBSDKLoginKit/FBSDKLoginKit.h>
然后我替换为:
[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions];
与:
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
希望我的回答对您有所帮助。
我在使用 FB SDK v4 + Parse v1.7.5 SDK 时遇到了同样的问题。
最后,我在我的项目中解决了这个问题。 Parse 空白项目存在错误。不要使用 Parse 空白项目。
https://www.parse.com/docs/downloads/ 官方下载页面,有两种下载方式(v 1.7.5),即SDK或Blank Project,启动项目。
它只使用 Parse SDK 文件 + 你的新项目!请仅导入 SDK。
尝试删除 ParseFacebookUtils
(只保留 ParseFacebookUtilsV4
)它会产生一些冲突。
如果您使用的是 FB SDK v4 + Parse v1.7.5 SDK,
我只有:
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
在我的桥接头中。我的 AppDelegate.swift 文件现在包含:
import Parse
import Bolts
import FBSDKCoreKit
import FBSDKShareKit
import FBSDKLoginKit
并且我能够 运行 我的应用成功。
我正在尝试使用 ParseFacebookUtilsv4 和 FacebookSDK v4。经过多次试验,我已经设法将错误减少到 1。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("###",
clientKey: "###")
PFFacebookUtils.initializeFacebookWithLaunchOptions(launchOptions)
}
在这部分中,完全复制自 Parse's iOS Docs - Facebook Setup(昨天为 FBSDKv4 更新),我收到一个错误:
'PFFacebookUtils.Type' does not have a member named 'initializeFacebookWithLaunchOptions'
当我查看 ParseFacebookUtilsv4 的完整文档时,上面写着 ~ 警告:此 class 支持官方 Facebook iOS SDK v4.0+,并且仅可用在 iOS. ~ 上,我看到没有任何 class 叫做 'initializeFacebookWithLaunchOptions';取而代之的是 'initializeFacebookWithApplicationLaunchOptions:'
但是,当我将 AppDelegate.swift / didFinishLaunchingWithOptions 部分更改为:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Parse.setApplicationId("###",
clientKey: "###")
PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)
}
...我收到一条错误消息,提示“预期为 return 'Bool' 的函数中缺少 return”。然后我尝试添加两者
return true /* AND */ return false // at the end of the function;
...我遇到了 9 次崩溃,例如: i.stack.imgur.com/o989R.png
我完全卡住了,不知道如何解决这个问题。
根据您的错误日志,我认为您缺少依赖项,或者您在此处添加了依赖项但尚未将它们包含在您的项目中。
我认为您的 Facebook SDK 未包含在构建目标中,因为缺少的符号具有 FB 前缀。
找到我的答案: 我不得不在我的桥接中导入 FBSDKLoginKit header(最近更新的 Parse Doc 中没有提到)。
所以我的 bridging-header 看起来像:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
#import <Parse/Parse.h>
#import <Bolts/Bolts.h>
您应该转到 PFFacebookUtils.h 头文件中的 PFFacebookUtils.h 并更改:
(void)initializeFacebookWithApplicationLaunchOptions:(NSDictionary *)launchOptions;
收件人:
(void)initializeFacebookWithApplicationLaunchOptions:(PF_NULLABLE NSDictionary *)launchOptions;
它会起作用的! 参考文献 https://developers.facebook.com/bugs/1462780714012820/
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions]; //works
[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions]; //does not compile or work
上面的第一行对我有用。好像他们忘记更新文档了。
我遇到了同样的问题,必须实施上面的两个建议才能使我的应用程序 运行 没有问题。
首先我从 FB SDK 添加了 FBSDKLoginKit 并导入它。(感谢 senty)
#import <FBSDKLoginKit/FBSDKLoginKit.h>
然后我替换为:
[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions];
与:
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
希望我的回答对您有所帮助。
我在使用 FB SDK v4 + Parse v1.7.5 SDK 时遇到了同样的问题。
最后,我在我的项目中解决了这个问题。 Parse 空白项目存在错误。不要使用 Parse 空白项目。
https://www.parse.com/docs/downloads/ 官方下载页面,有两种下载方式(v 1.7.5),即SDK或Blank Project,启动项目。
它只使用 Parse SDK 文件 + 你的新项目!请仅导入 SDK。
尝试删除 ParseFacebookUtils
(只保留 ParseFacebookUtilsV4
)它会产生一些冲突。
如果您使用的是 FB SDK v4 + Parse v1.7.5 SDK,
我只有:
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
在我的桥接头中。我的 AppDelegate.swift 文件现在包含:
import Parse
import Bolts
import FBSDKCoreKit
import FBSDKShareKit
import FBSDKLoginKit
并且我能够 运行 我的应用成功。