iOS上的Facebook SDK 4.6loginbutton不使用Facebook应用程序进行身份validation

我在一个简单的Swift应用程序中使用Facebook SDK v4.6.0 for iOS 9为我的应用程序添加一个loginbutton (我已经按照准备您的应用程序iOS 9中的步骤)。

loginbutton始终打开Safari进行身份validation,并从不使用原生Facebook应用程序。 这是预期的行为? 是否有可能使用本地应用程序(许多用户已被authentication),而不是直接进入networkinglogin?

我已经尝试通过使用XCode构build和运行,以及由TestFlight分发的构build来testing我的iPhone上的应用程序。 它始终打开Safari进行身份validation,即使我已经安装和configuration了本机应用程序。

我发现这个相关的问题 ,答案似乎只适用于3.x SDK。 我还发现了其他一些问题,这些问题涉及configurationtryFBAppAuthauthorizeWithFBAppAuth ,这似乎适用于以前版本的FB SDK的边缘案例。 4.6还没有find明确的答案。

这是devise,我已经填补了一个错误报告前几天,Facebook仍然有一些与iOS9的问题。

查看Facebook团队回复: https : //developers.facebook.com/bugs/786729821439894/? search_id谢谢

您需要将Facebook本机应用列入白名单。 在您的info.plist中,确保您有以下条目

 <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fbapi20130214</string> <string>fbapi20130410</string> <string>fbapi20130702</string> <string>fbapi20131010</string> <string>fbapi20131219</string> <string>fbapi20140410</string> <string>fbapi20140116</string> <string>fbapi20150313</string> <string>fbapi20150629</string> <string>fbauth</string> <string>fbauth2</string> <string>fb-messenger-api20140430</string> </array> 

除非您将urlscheme列入白名单,否则您的iOS应用将无法切换到该应用。 在这种情况下,Facebook SDK将显示Safari而不是原生应用程序。

你正在编译与iOS9 SDK(XCode 7.x)? 正如FB的iOS9准备页面中所提到的,您应该使用新的SDK来编译应用程序切换策略。