Facebook SDK:app未注册为URL Scheme

时间:2014-02-19 22:00:45

标签: ios facebook xamarin url-scheme

我正在使用Facebook SDK找到here,正在尝试提供的示例(位于FacebookiOSSample文件夹中)。

如果我只是将AppId替换为我的特定AppId,那么我就无法再分享了。 (我在AppDelegate文件和info.plist文件中都替换了它。我现在收到以下错误:

  

FBSDKLog:无效使用FBAppCall,fb ****未注册为URL   方案。你在plist中设置了'FacebookUrlSchemeSuffix'吗?

否则,这适用于样本的原始AppId,它指向名为IFaceTouch的内容。

我的应用设置有什么问题,如何注册我的AppId

10 个答案:

答案 0 :(得分:188)

遵循以下三个步骤:

  1. 使用字符串值创建名为 FacebookAppID 的密钥,并在其中添加应用ID。
  2. 使用字符串值创建名为 FacebookDisplayName 的密钥,并添加您在App Dashboard中配置的显示名称。
  3. 创建一个名为URL类型的数组键,其中包含一个名为 URL Schemes 的数组子项。使用前缀为fb的应用ID为单个项目。这用于确保应用程序将收到基于Web的OAuth流程的回调 URL
  4. 完成的.plist看起来应该是这样的:

    enter image description here

    Source Link:

答案 1 :(得分:20)

In terms of raw keys and values you should have CFBundleURLTypes and CFBundleURLSchemes

就原始密钥和值而言,您应该拥有CFBundleURLTypes和CFBundleURLSchemes。希望有所帮助!

答案 2 :(得分:15)

信息下方还有另一部分 - 网址类型

检查网址结构字段下的值是否与 网址类型 - >中的值相匹配上面的属性列表中的URL方案 。 (并且还匹配FacebookAppID)

URL TYPES

答案 3 :(得分:9)

适用于iOS 9

如果您有错误:' LSApplicationQueriesSchemes'

基于Bear with me answer,您还必须添加这些行:

<key>LSApplicationQueriesSchemes</key>
<array>
   <string>fbauth2</string>
</array>

请参阅this

以.plist文件末尾的那些行结束:

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb2R3234544534554</string>
            </array>
        </dict>
    </array>
    <key>FacebookAppID</key>
    <string>2R3234544534554</string>
    <key>FacebookDisplayName</key>
    <string>stevejeff</string>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <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>
            <key>akamaihd.net</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbauth2</string>
    </array>
    </dict>
    </plist>

*如果您使用的是v4.6.0或更高版本的SDK,则只需添加:* (感谢mohsinj

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

答案 4 :(得分:3)

转到此Link选择您的应用,并配置您的info.plist

答案 5 :(得分:1)

1-在Xcode中,右键单击项目的Info.plist文件,然后选择“打开方式->源代码”。

2-将以下XML代码段插入到文件正文中,就在最后一个</dict>元素之前。

  <key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fb{your-app-id}</string>
    </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>{your-app-id}</string>
<key>FacebookDisplayName</key>
<string>{your-app-name}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-share-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>

3-将{your-app-id}和{your-app-name}替换为在Facebook App仪表板上找到的应用程序的ID和名称。

答案 6 :(得分:0)

今天我通过从 FacebookDisplayName 中删除空间来解决这个问题。

确保 FacebookDisplayName

中没有任何空格

答案 7 :(得分:0)

我不知道您的问题是否与我的相同。但是我花了一些时间找到它,我将其放置在这里,这样它可以帮助任何人。.问题是,谷歌登录使用相同的info.plist属性名,并且它覆盖了Facebook的那些。可以在X代码中看到这些并将它们放在一起,现在一切正常! (“ URL类型”属性)。

答案 8 :(得分:0)

在我的情况下,当我再次在info.plist中分别添加它们时,我已经在我的info.plist中拥有LSApplicationQueriesSchemes和CFBundleURLTypes键。它没有阅读第二个,也无法识别。因此,将值添加到以前的LSApplicationQueriesSchemes和CFBundleURLTypes键中解决了我的问题。

答案 9 :(得分:-2)

我也面临同样的问题。然后这样做了:

foreach (MembershipUser user in AllUsers)

现在问题已解决。