更新到 IOS 9 后无法登录 Facebook

Posted

技术标签:

【中文标题】更新到 IOS 9 后无法登录 Facebook【英文标题】:Unable to login to Facebook after updating to IOS 9 【发布时间】:2016-02-08 21:07:19 【问题描述】:

更新到 ios 9 后,我无法让我的应用登录 Facebook。

我正在使用 Facebook-iOS-SDK (4.0.1)。我按照https://developers.facebook.com/docs/ios/ios9的步骤进行操作

这是我得到的:

2016-02-08 22:30:12.962 测试[46890:887841] -canOpenURL:URL 失败:“fbauth://authorize/?auth_type=rerequest&client_id=1567056303561905&default_audience=friends&display=touch&e2e=%7B%22init%22 %3A1454963412954%7D&redirect_uri=fbconnect%3A%2F%2Fsuccess&response_type=token%2Csigned_request&return_scopes=true&scope=email&sdk=ios&sdk_version=4.0.1&state=%7B%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22 220_auth_logger_id%22%3A%22726D5E62-ED16-43E4-A946-1266F17C8CA4%22%7D” - 错误:“(空)” 2016-02-08 22:30:20.954 测试 [46890:888120] App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用的 Info.plist 文件配置临时例外。

有什么想法吗?我该如何解决?

更新:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
    <key>facebook.com</key>
    <dict>
        <key>NSIncludesSubdomains</key><true/>                
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/>
        <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/>
    </dict>
    <key>fbcdn.net</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
        <false/>
    </dict>
    <key>akamaihd.net</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
        <false/>
    </dict>
</dict>
</dict>
<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>

谢谢。

【问题讨论】:

你检查过这个***.com/questions/33513630/… graph.facebook.com - Transport security block的可能重复 【参考方案1】:

注意应用程序传输安全性 - 现在您必须通过 https(而不是 http)进行连接

如果您愿意,可以在 plist 中对其进行编辑,并允许使用 http 而不是 https 的特定 url,但不建议这样做

【讨论】:

如何/在哪里更改为 https? 将此添加到您的 plist NSAppTransportSecurityNSExceptionDomainswww.facebook.comNSIncludesSubdomainsNSTemporaryExceptionAllowsInsecureHTTPLoads 或者,检查这个线程 - ***.com/questions/30731785/… 我已经添加了,仍然没有。这是否与 facebook http 访问相关,因为应用程序中有其他 http 调用,但我在 fb 登录期间收到该错误。更新了,我在上面的帖子中使用了 plist。 只是为了检查 - 您可以允许所有对 http 而不是 https 的调用。这样,您将看到这是否是导致您的问题的原因。所以添加到 plist: NSAppTransportSecurityNSAllowsArbitraryLoads (现在从那里删除你当前的 NSAppTransportSecurity 字典)

以上是关于更新到 IOS 9 后无法登录 Facebook的主要内容,如果未能解决你的问题,请参考以下文章

Facebook SDK 登录永远不会在 iOS 9 上回调我的应用程序

iOS 8 上的 Facebook 登录;登录切换后应用程序无法运行

iOS Facebook 最新 SDK 无法通过原生 App 但浏览器登录

Facebook无代码事件 - iOS应用程序无法连接到事件管理器

无法识别的选择器在 iOS9 上的 facebook sdk 4.6 中发送到 facebook 登录管理器的实例

Facebook 登录不会返回到带有 Xcode 7 iOS 9 的应用程序