问题描述:

I am using the Facebook SDK found here, and am trying the sample that is provided (in the folder FacebookiOSSample).

If I simply replace the AppId here with my specific AppId, then I can no longer Share. (I replaced it in both the AppDelegate file and the info.plist file). I now receive the following error:

FBSDKLog: Invalid use of FBAppCall, fb**** is not registered as a URL

Scheme. Did you set 'FacebookUrlSchemeSuffix' in your plist?

Otherwise this works fine with the sample's original AppId which points to something named IFaceTouch.

What could be wrong with the setup of my app, how do I register my AppId?

网友答案:

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:

Source Link:

网友答案:

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)

网友答案:

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>
网友答案:

I was also facing same issue. Then did this:

<dict> <key>CFBundleURLSchemes</key> <array> <string>fb154510174913175</string> <string>fbauth2</string> // add this line to remove the error </array> </dict>

and issue is fixed now.

相关阅读:
Top