iOS上的Facebook SDK 4.6登录按钮不使用Facebook应用程序进行身份验证

Mat*_*pel 13 facebook ios

我在一个简单的Swift应用程序中使用适用于iOS 9的Facebook SDK v4.6.0来为我的应用程序添加登录按钮(我已按照为iOS 9准备应用程序中的步骤).

登录按钮始终打开Safari进行身份验证,从不使用本机Facebook应用程序.这是预期的行为吗?是否可以使用本机应用程序(许多用户已经过身份验证)而不是直接进入Web登录?

我已经尝试通过使用XCode构建和运行以及使用TestFlight分发的构建来测试我的iPhone上的应用程序.即使我安装并配置了本机应用程序,它也始终打开Safari进行身份验证.

我找到了这个相关的问题,答案似乎只适用于3.x SDK.我还发现了其他一些引用配置的问题,tryFBAppAuth或者authorizeWithFBAppAuth似乎适用于以前版本的FB SDK的边缘情况.我没有找到4.6的明确答案.

Bas*_*ien 7

这是设计的.我几天前填写了一份错误报告,Facebook仍然存在iOS 9的问题.

请参阅Facebook团队的回答:https://developers.facebook.com/bugs/786729821439894/?search_id


小智 6

你需要将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>
Run Code Online (Sandbox Code Playgroud)

除非您将网址方案列入白名单,否则您的iOS应用将无法切换到该应用.在这种情况下,facebook SDK将显示Safari而不是本机应用程序.