Facebook SDK:アプリがURLスキームとして登録されていません


82

私はここFacebook SDK見つけたものを使用しており、(フォルダー内にFacebookiOSSample)提供されているサンプルを試しています。

AppIdここを特定のものに置き換えるだけでは、AppId共有できなくなります。(AppDelegateファイルとファイルの両方で置き換えましたinfo.plist)。次のエラーが表示されます。

FBSDKLog:FBAppCallの無効な使用、fb ****はURLスキームとして登録されていません。plistに「FacebookUrlSchemeSuffix」を設定しましたか?

それ以外の場合、これは、AppIdという名前の何かを指すサンプルのオリジナルで正常に機能しIFaceTouchます。

アプリの設定で何が問題になる可能性がありますAppIdか?登録するにはどうすればよいですか?


1
注:CFBundleURLSchemesにfbauth2を追加するようにアドバイスする以下の回答により、アプリは他のアプリのFacebookアプリスイッチログイントラフィックをインターセプトします。これを行わないでください
Chris Maddern 2016

「canOpenURL:failed」警告を解決しようとしている場合、これらはFacebookアプリがデバイスまたはシミュレーターにインストールされておらず、無視できることを示しているだけです。
Binoy jose 2016

回答:


227

次の3つの手順に従います。

  1. 文字列値を使用してFacebookAppIDというキーを作成し、そこにアプリIDを追加します。
  2. 文字列値を使用してFacebookDisplayNameというキーを作成し、アプリダッシュボードで構成した表示名を追加します。
  3. URLスキームと呼ばれる単一の配列サブアイテムを使用してURLタイプと呼ばれる配列キーを作成します。これに、アプリIDの前にfbを付けた単一のアイテムを指定します。これは、アプリケーションがWebベースのOAuthフローのコールバックURLを確実に受信するために使用されます

完成した.plistは次のようになります。

ここに画像の説明を入力してください

ソースリンク:


1
問題はFacebookDisplayNameのようで、これは私のアプリダッシュボードと一致していませんでした。ありがとう!
L. Desjardins 2014

3
ほとんどの場合、大文字と小文字を間違えた文字の入力ミスでさえ、同様のエラーメッセージを引き起こす可能性のあるタイプミスです。それらを再確認してください!
BootMaker 2015年

4
@BootMaker 2番目に-「URLスキーム」ではなく「URLスキーム」が間違っていたため、私のものは機能していませんでした。
ベンジャミンマーティン

1
Xcode 6の更新された2015バージョンの詳細な図は、stackoverflow.com
a / 18480723/1780492

また、FacebookAppIDとFacebookDisplayNameがURLタイプよりも上位になるように注意してください。それはクラッシュしていないので、SDK 4の場合
ポールはRazvanバーグ

20

生のキーと値に関しては、CFBundleURLTypesとCFBundleURLSchemesが必要です

生のキーと値に関しては、CFBundleURLTypesとCFBundleURLSchemesが必要です。お役に立てば幸いです。


1
CFBundleは存在しますが、xml形式を使用すると、構造が間違っていることがわかりました。ありがとう
daniel kilinskas 2015年

16

情報の下に別のセクションがあります-URLタイプ

[ URLスキーム]フィールドの下にある値が、上記のプロパティリストの[URLタイプ]-> [URLスキーム]の値と一致することを確認してください。(そしてFacebookAppIDとも一致します)

URLタイプ


9

iOS9の場合

エラーがある場合: 'LSApplicationQueriesSchemes'

Bear with meの回答に基づいて、次の行も追加する必要があります。

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

これを参照してください。

あなたはすべきであるあなたのの.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>

* SDKのv4.6.0以降を使用している場合は、以下を追加するだけで済みます。*(ありがとう mohsinj

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

1
あなたはより多くの項目を追加する必要があり、「LSApplicationQueriesSchemes」については2016 - - [UPDATE] 8月 <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array>
mohsinj


4

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アプリダッシュボードにあるアプリのアプリのIDと名前に置き換えます。


0

今日、FacebookDisplayNameからスペースを削除するだけで、このバグを解決しました

FacebookDisplayNameにスペースがないことを確認してください


0

あなたの問題が私のものと同じかどうかはわかりません。しかし、それを見つけるのに少し時間がかかりました。誰にでも役立つようにここに配置します。問題は、グーグルサインインが同じinfo.plist属性名を使用し、フェイスブックのものをオーバーライドしていたことでした。これをX-Codeで確認してまとめることができたので、すべてが正常に機能します。(URLタイプ属性)。


0

私の場合、info.plistにLSApplicationQueriesSchemesキーとCFBundleURLTypesキーがすでにありましたが、info.plistに別々に追加しました。2番目のものを読み取らず、認識しません。したがって、以前のLSApplicationQueriesSchemesキーとCFBundleURLTypesキーに値を追加すると、問題が解決しました。


-3

私も同じ問題に直面していました。次にこれを行いました:

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

問題は修正されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.