【问题标题】:Facebook SDK 4.5 IOS 9脸书 SDK 4.5 IOS 9
【发布时间】:2015-11-06 14:46:25
【问题描述】:

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

错误:“canOpenUrl:url“fbauth2://”错误:“(null)”

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

您知道如何解决此错误吗?

【问题讨论】:

  • 你解决过这个问题吗?
  • 这个问题解决了吗?

标签: ios facebook facebook-ios-sdk ios9


【解决方案1】:

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

【讨论】:

  • 我在真实设备上遇到了这个问题,更新了列表
  • 转了一圈,直到重置模拟器。谢谢!
【解决方案2】:

我在使用 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>

【讨论】:

  • 请注意,根据常见问题解答:为什么我会看到控制台消息,例如 'canOpenURL: failed for URL: "fb...://' 或?这是一个 Xcode 警告,表明canOpenURL: call returned false. 只要你按照上面的描述在你的 plist 中配置了 LSApplicationQueriesSchemes 条目,你就可以忽略这个警告
【解决方案3】:

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 Framework like

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

【讨论】:

    【解决方案4】:

    我遇到了同样的问题,但在我安装了 facebook 的手机上运行了该应用程序并且它运行正常。 这可能是因为它在模拟器上不起作用或必须安装 facebook。 还有人发现什么吗?

    【讨论】:

    • 模拟器适合我。我只需要添加fbauth2。它将重定向到 Facebook 网站。
    【解决方案5】:

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

    这解决了我的问题。

    【讨论】:

    • 您能详细说明一下吗?请问?
    • 这是错误的方式 LSApplicationQueriesSchemescom.sample.appidfbapifb-messenger -apifbauth2fbshareextension
    • 感谢您与我联系。请在这里解释一件事; com.sample.appid 是捆绑标识符,或者例如我的应用程序是 facebook 上的 xyz 并且我的 appid 是 1234567890 所以这是 com.xyz.1234567890 ?两者中的哪一个.. 谢谢你的澄清。
    • 是一个bundle id的例子。只需将您的 Facebook 密钥放在数组的开头,这将解决您的问题
    【解决方案6】:

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

    这是一个 Xcode 警告,指示 canOpenURL: 调用返回 错误的。只要您配置了 LSApplicationQueriesSchemes 如上所述在您的 plist 中输入,您可以忽略此警告

    【讨论】:

      【解决方案7】:

      在 info.plist 中这样使用

      <key>CFBundleURLTypes</key>
      <array>
          <dict>
              <key>CFBundleURLSchemes</key>
              <array>
                  <string>fb123124123123</string>
                  <string>fbauth2</string>
              </array>
          </dict>
      </array>
      

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

      【讨论】:

      • 错了。这表明您的应用使用 fbauth2: 方案响应 URL。该计划是 Facebook 的责任。
      猜你喜欢
      • 2012-09-19
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      相关资源
      最近更新 更多