Facebook SDK: 应用程序未注册为 URL 方案

我使用的 Facebook SDK发现 给你,并尝试提供的样品(在文件夹 FacebookiOSSample)。

如果我只是用特定的 AppId替换这里的 AppId,那么我就不能再共享了。(我在 AppDelegate文件和 info.plist文件中都替换了它)。我现在收到以下错误:

FBSDKLog: FBAppCall 使用无效,fb * * * * 未注册为 URL 你是否在你的列表中设置了“ FacebookUrlSchemeAffix”?

否则,对于示例的原始 AppId(它指向一个名为 IFaceTouch的东西) ,这种方法可以很好地工作。

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

95524 次浏览

Follow these three steps:

  1. Create a key called FacebookAppID with a string value, and add the app ID there.
  2. Create a key called FacebookDisplayName with a string value, and add the Display Name you configured in the App Dashboard.
  3. Create an array key called URL types with a single array sub-item called URL Schemes. Give this a single item with your app ID prefixed with fb. This is used to ensure the application will receive the callback URL of the web-based OAuth flow.

The finished .plist should look something like this:

enter image description here

Source Link:

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

In terms of raw keys and values you should have CFBundleURLTypes and CFBundleURLSchemes. Hope that helps!

there is another section below the info - URL Types

check that the values there, under the URL Schemes field match the value in the URL types -> URL Schemes in the property list above. (and also match the FacebookAppID)

URL TYPES

For iOS 9

If you have an error: 'LSApplicationQueriesSchemes'

Based on Bear with me answer, you will also have to add those lines:

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

See this.

You should end up with those lines at the end of your .plist files:

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

* If you're using v4.6.0 or higher of the SDK, you only need to add:* (Thanks mohsinj)

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

Go to this Link Select Your App, And configure your info.plist

Today i solved this bug by just removing space from FacebookDisplayName.

make sure you don't have any space in FacebookDisplayName

1- In Xcode, right-click your project's Info.plist file and select Open As -> Source Code.

2- Insert the following XML snippet into the body of your file just before the final </dict> element.

  <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- Replace {your-app-id}, and {your-app-name} with your app's App's ID and name found on the Facebook App Dashboard.

I don't know if your problem is the same as mine. But it took me some time to find it and i will put it here so that it can help anyone.. The problem was that google sign in used the same info.plist attribute name and it was overriding the ones of facebook.. So i could see this in X-Code and put them together, now everything works fine! (URL Types attribute).

In my case i already had LSApplicationQueriesSchemes and CFBundleURLTypes keys in my info.plist, When I again added them separately in info.plist. it didn't read the second one and doesn't recognize. So add values into the previous LSApplicationQueriesSchemes and CFBundleURLTypes keys solved my issue.

Had this issue but was because i missed the prefix fb with the app id for the url scheme section.

if you used login with google and implemented already put both in same url schema

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>https</string>
<string>fbXXXXXXXXXXXXXX</string> //facebook app id
<string>com.googleusercontent.apps.XXXXXXXXX-XXXXXXXXXXXXXXX</string> // Google Url Schemal
</array>
</dict>
</array>

If you are using multiple social auth the place URL schema is like as below.

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb7876940600009</string>
<string>com.googleusercontent.apps.76235222224-hfvusdel7p8eavfvn</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>7876983017</string>
<key>FacebookClientToken</key>
<string>e29fbf1f15a5b5be028dcb</string>
<key>FacebookDisplayName</key>
<string>xdfxdffmate</string>