Facebook SDK 4.5 IOS 9

Facebook SDK 4.5 IOS 9

我遇到了新 FBSDK 的问题。每当我尝试调用登录方法 logInWithReadPermissions 时,我都会收到此错误消息:

ERROR : "canOpenUrl : failed for url "fbauth2://" error: "(null)"

我在 dev.facebook 上的 ios9 tuto ( https://developers.facebook.com/docs/ios/ios9 ) 之后有我的配置 .plist 文件。所以,我得到了 NSAppTransportSecurity 字典和 LSApplicationQueriesSchemes 数组(上面有字符串 "fbauth2")

您知道如何解决这个错误吗?

我和Google+登录库有同样的问题, 但我在最后一个 SDK 版本 4.6.0 解决了 Facebook 更新问题!

请记得在更新后更改您的 plist 密钥 LSApplicationQueriesSchemes,如下所示:

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

我遇到了同样的问题,但是 运行 我的 phone 上的应用程序安装了 facebook 并且可以正常工作。 这可能是因为它在模拟器上不起作用或必须安装 facebook。 还有人找到其他东西吗?

如果问题仍然存在,请重置模拟器,这对我有用。

1] 在 Developer.facebook 中进行身份验证并生成 Facebook Id,例如:=>460481580805052

2] 设置位码:否来自构建设置

3] 设置 Plist 文件

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb460481580805052</string>
        </array>
    </dict>
</array>

<key>FacebookAppID</key>
<string>460481580805052</string>

<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>akamaihd.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>facebook.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>fbcdn.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>
    <string>fb-messenger-platform-20150128</string>
    <string>fb-messenger-platform-20150218</string>
    <string>fb-messenger-platform-20150305</string>
</array>

4] 下载4个Sdk框架like

=>Bolts.framework
=>FBSDKCoreKit.framework
=>FBSDKLoginKit.framework
=>FBSDKShareKit.framework

如果您在 LSApplicationQueriesSchemes 上已有项目。 先放 Facebook 条目。

这解决了我的问题。

在info.plist

中这样使用
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb123124123123</string>
            <string>fbauth2</string>
        </array>
    </dict>
</array>

之后,您应该从编辑器中删除您的应用并重新启动。

来自 link 底部的 Facebook 常见问题解答: https://developers.facebook.com/docs/ios/ios9

This is an Xcode warning indicating the the canOpenURL: call returned false. As long as you have configured the LSApplicationQueriesSchemes entry in your plist as described above, you can ignore this warning