在 XCode 7.0.1 中将 FB SDK(版本 4.7.0)与 iOS 9 集成时出错:canOpenURL:URL 失败:“fbauth2:/”

Posted

技术标签:

【中文标题】在 XCode 7.0.1 中将 FB SDK(版本 4.7.0)与 iOS 9 集成时出错:canOpenURL:URL 失败:“fbauth2:/”【英文标题】:Error with integrating FB SDK (Version 4.7.0) with iOS 9 in XCode 7.0.1: canOpenURL: failed for URL: "fbauth2:/" 【发布时间】:2015-10-24 02:38:39 【问题描述】:

我按照here 的最新说明将 FBSDK(已下载版本 4.7.0)与我最新的 XCode 集成。我很确定我在 info.plist 中配置了以下内容(我只需要这些版本 4.7.0):

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
</array>

并复制了 Facebook 在我的 Facebook 开发帐户中提供的所有内容。但是,当我尝试使用 Facebook 登录按钮登录时,出现此错误:

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

当我看到此错误时,即使我在 Safari 中单击“确定”,我的应用程序也会卡住并且似乎没有经过身份验证。我还看到了 Facebook 解释的以下内容,但这对我来说没有意义,因为我的应用仍然卡在此错误消息中。

In ios 9, the app switches can prompt the user with a confirmation dialog. The SDK will try to minimize the frequency of this by choosing the best dialog available (such as SafariViewController), but this is by design in iOS 9.

【问题讨论】:

【参考方案1】:

我知道这听起来很傻,但我找到了解决方案,它与我的.plist 文件中的设置无关。我将以下两个函数放在我的 App Delegate 中,尽管有上述 fbauth2

警告,但一切正常
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool 
        // return FBAppCall.handleOpenURL(url, sourceApplication:sourceApplication, session:PFFacebookUtils.session())
        return FBSDKApplicationDelegate.sharedInstance().application(application,
            openURL: url,
            sourceApplication: sourceApplication,
        annotation: annotation)

    



    //Make sure it isn't already declared in the app delegate (possible redefinition of func error)
    func applicationDidBecomeActive(application: UIApplication) 
        FBSDKAppEvents.activateApp()
    

【讨论】:

以上是关于在 XCode 7.0.1 中将 FB SDK(版本 4.7.0)与 iOS 9 集成时出错:canOpenURL:URL 失败:“fbauth2:/”的主要内容,如果未能解决你的问题,请参考以下文章

我应该在 iOS 5 中使用哪个 FB SDK 版本?

使用 Xcode 7.0.1 提交应用程序

Facebook iOS sdk xcode 4.3/storyboards

6.0.1 的基础 SDK 在 Xcode 中不是一个选项吗?

使用 iOS 版 Facebook SDK 发布故事时未上传图片

iOS Xcode及模拟器SDK下载