在 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:/”的主要内容,如果未能解决你的问题,请参考以下文章
Facebook iOS sdk xcode 4.3/storyboards
6.0.1 的基础 SDK 在 Xcode 中不是一个选项吗?