फेसबुक एसडीके: ऐप एक यूआरएल योजना के रूप में पंजीकृत नहीं है


82

मैं यहांFacebook SDK पाया का उपयोग कर रहा हूं , और जो (फ़ोल्डर में ) प्रदान किया गया है उस नमूने की कोशिश कर रहा हूं ।FacebookiOSSample

अगर मैं AppIdयहां अपने विशिष्ट के साथ बस प्रतिस्थापित करता हूं AppId, तो मैं अब साझा नहीं कर सकता। (मैंने इसे AppDelegateफ़ाइल और फ़ाइल दोनों में बदल दिया info.plist)। अब मुझे निम्नलिखित त्रुटि प्राप्त हुई है:

FBSDKLog: FBAppCall, fb **** का अमान्य उपयोग URL योजना के रूप में पंजीकृत नहीं है। क्या आपने 'FacebookUrlSchemeSuffix' को अपनी मुट्ठी में रखा?

अन्यथा यह नमूना के मूल के साथ ठीक काम करता है AppIdजो नामित नाम की ओर इशारा करता है IFaceTouch

मेरे ऐप के सेटअप में क्या गलत हो सकता है, मैं अपना पंजीकरण कैसे करूं AppId?


1
नोट: नीचे दिया गया उत्तर आपको अपने CFBundleURLSchemes में fbauth2 जोड़ने की सलाह देता है, जिससे आपका ऐप दूसरे ऐप के फेसबुक ऐप-स्विच लॉगिन ट्रैफ़िक को रोक देगा। इस मत करो
क्रिस मैडरन

यदि आप "canOpenURL: fail" चेतावनियों को हल करने का प्रयास कर रहे हैं, तो वे केवल यह संकेत देते हैं कि फेसबुक ऐप आपके डिवाइस या सिम्युलेटर पर स्थापित नहीं है और इसे अनदेखा किया जा सकता है। '
बिनॉय जॉस

जवाबों:


227

इन तीन चरणों का पालन करें:

  1. एक स्ट्रिंग मान के साथ FacebookAppID नामक एक कुंजी बनाएं , और वहां ऐप आईडी जोड़ें।
  2. एक स्ट्रिंग मान के साथ FacebookDisplayName नामक एक कुंजी बनाएं , और ऐप डैशबोर्ड में आपके द्वारा कॉन्फ़िगर प्रदर्शन नाम जोड़ें।
  3. एक सारिणी का उप आइटम कहा जाता है के साथ URL प्रकार कहा जाता है एक सरणी कुंजी बनाएं यूआरएल योजनाएं । अपने ऐप आईडी के साथ इस एकल आइटम को fb के साथ उपसर्ग दें। इसका उपयोग यह सुनिश्चित करने के लिए किया जाता है कि एप्लिकेशन वेब-आधारित OAuth प्रवाह का कॉलबैक URL प्राप्त करेगा ।

समाप्त .plist कुछ इस तरह दिखना चाहिए:

यहां छवि विवरण दर्ज करें

स्रोत लिंक:


1
ठीक है समस्या FacebookDisplayName की लग रही थी, यह मेरे ऐप डैशबोर्ड से मेल नहीं खा रहा था। धन्यवाद!
एल। डेसजार्डिंस

3
ज्यादातर मामले में टाइपो जो समान त्रुटि संदेश का कारण बन सकता है, यहां तक ​​कि गलत ऊपरी / निचले मामले के साथ एक गलत पत्र भी। डबल उन्हें जांचें!
बूटमेकर

4
@BootMaker दूसरा कि - मेरा काम नहीं कर रहा था क्योंकि मेरे पास "URL स्कीम्स" के बजाय "URL स्कीम्स" गलत थीं।
बेंजामिन मार्टिन

1
आप Xcode 6 के लिए अपडेट किए गए 2015 संस्करण के साथ एक विस्तृत चित्रण देख सकते हैं यहां stackoverflow.com/a/18480723/1780492
बूटमेकर

इसके अलावा URL प्रकारों की तुलना में FacebookAppID और FacebookDisplayName को ऊपरी तौर पर रखें। एसडीके 4 पर ऐसा नहीं होने पर यह दुर्घटनाग्रस्त हो जाता है।
पॉल रजवन बर्ग

20

कच्चे कुंजी और मूल्यों के संदर्भ में आपके पास CFBundleURLTypes और CFBundleURLSchemes होना चाहिए

कच्चे कुंजी और मूल्यों के संदर्भ में आपके पास CFBundleURLTypes और CFBundleURLSchemes होना चाहिए। उम्मीद है की वो मदद करदे!


1
CFBundle मौजूद है, लेकिन xml प्रारूप ने मुझे यह पता लगाने में मदद की कि मेरी संरचना गलत थी। धन्यवाद
डैनियल kilinskas

16

जानकारी के नीचे एक और अनुभाग है - URL प्रकार

यह जाँचें कि URL स्कीम्स फ़ील्ड के अंतर्गत मौजूद मान, URL प्रकारों -> URL स्कीमों में ऊपर दी गई संपत्ति सूची में मौजूद मूल्य से मेल खाते हैं। (और FacebookAppID से मेल भी खाते हैं)

URL टाइप करें


9

IOS 9 के लिए

यदि आपको कोई त्रुटि है: 'LSApplicationQueriesSchemes'

भालू के साथ मेरे जवाब के आधार पर , आपको उन पंक्तियों को भी जोड़ना होगा:

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

* यदि आप v4.6.0 या उच्चतर SDK का उपयोग कर रहे हैं, तो आपको केवल जोड़ने की आवश्यकता है: * (धन्यवाद mohsinjj )

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

1
[अद्यतन] अगस्त - २०१६ "LSApplicationQueriesSchemes" के लिए आपको और आइटम जोड़ना होगा - <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 फ़ाइल पर राइट-क्लिक करें और Open As -> Source Code चुनें।

2- अंतिम </dict>तत्व से ठीक पहले अपनी फ़ाइल के शरीर में निम्न XML स्निपेट डालें ।

  <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} बदलें।


0

आज मैंने इस बग को FacebookDisplayName से केवल स्थान हटाकर हल किया है ।

सुनिश्चित करें कि आपके पास FacebookDisplayName में कोई स्थान नहीं है


0

मुझे नहीं पता कि आपकी समस्या मेरी जैसी ही है। लेकिन मुझे इसे खोजने में कुछ समय लगा और मैं इसे यहां रखूंगा ताकि यह किसी की मदद कर सके .. समस्या यह थी कि google साइन इन एक ही जानकारी का उपयोग करता था। विशेषज्ञ का नाम और यह facebook के लोगों को पछाड़ रहा था .. इसलिए मैं एक्स-कोड में इसे देख सकते हैं और उन्हें एक साथ रख सकते हैं, अब सब कुछ ठीक है! (URL प्रकार विशेषता)।


0

मेरे मामले में मेरे पास पहले से ही LSApplicationQueriesSchemes और CFBundleURLTypes कुंजियाँ मेरी info.plist में थीं, जब मैंने फिर से उन्हें info.plist में अलग से जोड़ा। यह दूसरा नहीं पढ़ा और पहचान नहीं करता है। तो पिछले LSApplicationQueriesSchemes और CFBundleURLTypes कुंजियों में मान जोड़ें मेरी समस्या हल हो गई।


-3

मैं भी उसी मुद्दे का सामना कर रहा था। फिर यह किया:

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

और मुद्दा अब तय हो गया है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.