0

我已经将 Appcelerator 用于移动应用程序有一段时间了,但由于 Facebook SDK 的问题,我一直在寻找 swift 以便将应用程序移动到本机,并拥有更多控制权。

目前所有的应用程序都使用 Parse 作为后端,并且已经通过 Appcelerator Facebook 模块让 Facebook 登录。

但是,现在使用 Appcelerator 构建的所有 iOS 版本(从 iOS9 开始)都无法登录,并出现以下错误:

-canOpenURL: failed for URL: "fbauth2:/" - error: "(null)"

我现在设置了两个空白的 swift 项目,一个使用 Parse SDK,一个使用 Facebook SDK。两个项目都按预期运行,将对象保存到 Parse,并分别使用 Facebook 登录。

Facebook 项目登录并检索用户电子邮件和 public_profile 很好,虽然我仍然收到上述错误,但它不影响登录过程或数据检索。

但是,我现在尝试将两者合并并使用 Parse FacebookUtils 框架,但我遇到了与 Appcelerator 应用程序相同的问题。我得到了错误,然后什么都没有。

在我看来,上述错误似乎导致 FacebookUtils 框架静默失败,就像 Appcelerator Facebook 模块一样。

所以,我想我最初的问题是:

有没有人在 iOS9 中使用 Parse FacebookUtils 框架?

如果其他人都成功了,那么我可以进一步调查,我宁愿不花几个小时兜圈子试图实现一些不可能的事情。

  • Xcode:7.1.1
  • ParseFacebookUtilsV4
  • Facebook 登录工具包:V4.8.0

这是我的快速登录代码:

let readPermissions = ["public_profile","email","user_friends"]
PFFacebookUtils.logInInBackgroundWithReadPermissions(readPermissions, block: {
            (user: PFUser?, error: NSError?) -> Void in
            NSLog("Signing in")
            if let user = user {
                if user.isNew {
                    NSLog("User signed up through facebook")
                } else {
                    NSLog("User logged in through Facebook")
                }
            } else {
                NSLog("user cancelled login")
            }
        })

永远不会调用闭包,并且永远不会输出“登录”的日志记录。

如果有帮助,我可以在 Github 上发布空白项目。

谢谢

保罗

4

1 回答 1

0

我对 Swift 方面不是很熟悉,但我猜这是需要在 info.plist 中将 Facebook 应用程序列入白名单的情况

阅读此处的白名单部分以获取信息:https ://developers.facebook.com/docs/ios/ios9

于 2015-12-07T22:53:03.167 回答