【问题标题】:Facebook SDK v4 & Parse (Swift)Facebook SDK v4 & Parse (Swift)
【发布时间】:2015-04-11 04:15:43
【问题描述】:

我正在尝试使用 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 的完整文档时,上面写着 ~ 警告:这个类支持官方 Facebook iOS SDK v4.0+,并且只在 iOS 上可用。 ~,我看到有'没有任何类名为 'initializeFacebookWithLaunchOptions';取而代之的是 'initializeFacebookWithApplicationLaunchOptions:'

但是,当我将 AppDelegate.swift / didFinishLaunchingWithOptions 部分更改为:

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

    Parse.setApplicationId("###",
        clientKey: "###")

    PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)

}

...我收到一条错误消息,提示“预期返回“Bool”的函数中缺少返回。然后我尝试添加两者

 return true /* AND */ return false // at the end of the function; 

...我遇到 9 次崩溃,例如: i.stack.imgur.com/o989R.png

我完全被卡住了,不知道如何解决这个问题。

【问题讨论】:

  • 您是否在 bundle plist 中提供了 Facebook 应用程序 ID?
  • @Uttam 是的,我做到了。绝对是这条线造成了问题...PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions) ...因为当我将其注释掉并return true;应用程序启动时没有任何错误。
  • 我们可以查看完整的错误日志吗?
  • Here is the full error log 当我 PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)return true
  • 参考这个链接 - stackoverflow.com/questions/15457136/… 希望这里提供的解决方案对你有用:)

标签: ios facebook parse-platform facebook-sdk-4.0 parsefacebookutils


【解决方案1】:
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions]; //works

[PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions]; //does not compile or work

上面的第一行对我有用。好像他们忘记更新他们的文档了。

【讨论】:

    【解决方案2】:

    您应该转到 PFFacebookUtils.h 头文件中的 PFFacebookUtils.h 并进行更改:

    (void)initializeFacebookWithApplicationLaunchOptions:(NSDictionary *)launchOptions;

    收件人:

    (void)initializeFacebookWithApplicationLaunchOptions:(PF_NULLABLE NSDictionary *)launchOptions;

    它会工作的! 参考https://developers.facebook.com/bugs/1462780714012820/

    【讨论】:

    • 我的应用仍然崩溃
    【解决方案3】:

    根据您的错误日志,我认为您缺少依赖项,或者您在此处添加了依赖项,但您尚未将它们包含在您的项目中。

    我认为您的 Facebook SDK 未包含在构建目标中,因为缺少的符号具有 FB 前缀。

    【讨论】:

    • imgur.com/4Mo53vC 如您所见,我在我的项目中添加了 FacebookSDK(v4) 和 Parse 1.7.1(即 PFFacebookUtilsv4)。我得到的错误不是来自 Facebook SDK;而是与 Parse 相关的 PFFacebookUtils,而不是 Facebook。
    【解决方案4】:

    找到我的答案: 我必须在我的桥接头中导入 FBSDKLoginKit(最近更新的 Parse Doc 中没有提到)。

    所以我的桥接头看起来像:

        #import <FBSDKCoreKit/FBSDKCoreKit.h>
        #import <FBSDKLoginKit/FBSDKLoginKit.h>
        #import <ParseFacebookUtilsV4/PFFacebookUtils.h>
        #import <Parse/Parse.h>
        #import <Bolts/Bolts.h>
    

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,必须实施上述两个建议才能让我的应用正常运行。

      首先我从 FB SDK 添加了 FBSDKLoginKit 并将其导入。(感谢 senty)

      #import <FBSDKLoginKit/FBSDKLoginKit.h>
      

      然后我换了:

      [PFFacebookUtils initializeFacebookWithLaunchOptions:launchOptions];
      

      与:

      [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
      

      希望我的回答对你有帮助。

      【讨论】:

        【解决方案6】:

        我在使用 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。

        【讨论】:

          【解决方案7】:

          尝试删除ParseFacebookUtils(只保留ParseFacebookUtilsV4)会产生一些冲突。

          【讨论】:

            【解决方案8】:

            如果您使用的是 FB SDK v4 + Parse v1.7.5 SDK,

            我只有:

            #import <ParseFacebookUtilsV4/PFFacebookUtils.h>
            

            在我的桥接头中。我的 AppDelegate.swift 文件现在包含:

            import Parse
            import Bolts
            import FBSDKCoreKit
            import FBSDKShareKit
            import FBSDKLoginKit
            

            我能够成功运行我的应用程序。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-07-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多