Facebook SDK: uygulama bir URL Şeması olarak kayıtlı değil


82

BuradaFacebook SDK bulunanları kullanıyorum ve sağlanan örneği (klasörde ) deniyorum .FacebookiOSSample

Sadece AppIdburayı kendi özelimle değiştirirsem, AppIdartık Paylaşamayacağım. (Hem AppDelegatedosyada hem de dosyada değiştirdim info.plist). Şimdi aşağıdaki hatayı alıyorum:

FBSDKLog: Geçersiz FBAppCall kullanımı, fb **** bir URL Şeması olarak kaydedilmemiştir. Plistinizde 'FacebookUrlSchemeSuffix' ayarladınız mı?

Aksi takdirde bu, AppIdadlandırılmış bir şeye işaret eden numunenin orijinaliyle iyi çalışır IFaceTouch.

Uygulamamın kurulumunda ne yanlış olabilir, nasıl kayıt olurum AppId?


1
Not: CFBundleURLSchemes'e fbauth2 eklemenizi tavsiye eden aşağıdaki yanıt, uygulamanızın diğer uygulamanın Facebook uygulaması geçiş giriş trafiğini kesmesine neden olacaktır. BUNU YAPMAYIN
Chris Maddern

"CanOpenURL: başarısız" uyarılarını çözmeye çalışıyorsanız, bunlar yalnızca Facebook uygulamasının cihazınızda veya simülatörünüzde yüklü olmadığını ve göz ardı edilebileceğini gösterir. '
Binoy jose

Yanıtlar:


227

Şu üç adımı izleyin:

  1. Bir dize değerine sahip FacebookAppID adlı bir anahtar oluşturun ve uygulama kimliğini oraya ekleyin.
  2. Bir dize değeriyle FacebookDisplayName adlı bir anahtar oluşturun ve Uygulama Panosunda yapılandırdığınız Görünen Adı ekleyin.
  3. URL Şemaları adı verilen tek bir dizi alt öğesiyle URL türleri adı verilen bir dizi anahtarı oluşturun . Buna, fb ön eki olan uygulama kimliğinize sahip tek bir öğe verin. Bu, uygulamanın web tabanlı OAuth akışının geri arama URL'sini almasını sağlamak için kullanılır .

Bitmiş .plist şunun gibi görünmelidir:

görüntü açıklamasını buraya girin

Kaynak Bağlantısı:


1
Tamam, sorun FacebookDisplayName gibi görünüyordu, bu Uygulama Kontrol Panelimle eşleşmiyordu. Teşekkürler!
L. Desjardins

3
Çoğu durumda, benzer hata mesajına neden olabilecek yazım hatası, hatta yanlış yazılmış büyük / küçük harfli bir harf. Onları iki kez kontrol edin!
BootMaker

4
@BootMaker İkincisi - Benimki çalışmıyordu çünkü yanlış bir şekilde "URL Şemaları" yerine "URL şemalarına" sahiptim.
Benjamin Martin

1
Xcode 6 için güncellenmiş 2015 sürümü ile ayrıntılı bir örneği burada görebilirsiniz stackoverflow.com/a/18480723/1780492
BootMaker

FacebookAppID ve FacebookDisplayName değerlerinin URL türlerinden büyük olmasına da dikkat edin. SDK 4'te öyle değilse çöküyor.
Paul Razvan Berg

20

Ham anahtarlar ve değerler açısından CFBundleURLTypes ve CFBundleURLSchemes'e sahip olmalısınız

Ham anahtarlar ve değerler açısından CFBundleURLTypes ve CFBundleURLSchemes'e sahip olmanız gerekir. Umarım yardımcı olur!


1
CFBundle var, ancak xml formatı yapımın yanlış olduğunu bulmama yardımcı oldu. teşekkür ederim
daniel kilinskas

16

bilginin altında başka bir bölüm var - URL Türleri

URL Şemaları alanının altındaki değerlerin, yukarıdaki özellik listesindeki URL türleri -> URL Şemaları'ndaki değerlerle eşleşip eşleşmediğini kontrol edin . (ve ayrıca FacebookAppID ile eşleşir)

URL TÜRLERİ


9

İOS 9 için

Bir hatanız varsa: 'LSApplicationQueriesSchemes'

Dayanarak beni cevap ile Bear , ayrıca bu satırları eklemek gerekir:

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

Bunu gör .

Sen olmalıdır senin .plist dosyaların sonunda bu hatları ile sona:

<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'nın v4.6.0 veya üstünü kullanıyorsanız, yalnızca şunları eklemeniz gerekir: * (Teşekkürler mohsinj )

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

1
[GÜNCELLEME] Ağu - 2016 "LSApplicationQueriesSchemes" için Daha fazla öğe eklemelisiniz - <key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array>
mohsinj


4

1- Xcode'da, projenizin Info.plist dosyasına sağ tıklayın ve Farklı Aç -> Kaynak Kod'u seçin.

2- Aşağıdaki XML pasajını dosyanızın gövdesine son </dict>öğeden hemen önce ekleyin .

  <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- {uygulamanız-kimliği} ve {uygulamanız-adı} kısmını Facebook Uygulama Kontrol Panelinde bulunan uygulamanızın Uygulama kimliği ve adıyla değiştirin.


0

Bugün bu hatayı sadece FacebookDisplayName'den alan kaldırarak çözdüm .

FacebookDisplayName'de boş alan olmadığından emin ol


0

Senin sorunun benimki ile aynı mı bilmiyorum. Ama bulmam biraz zaman aldı ve herkese yardımcı olabilmesi için buraya koyacağım .. Sorun şu ki, google girişinde aynı info.plist öznitelik adı kullanılıyordu ve facebook'unkileri geçersiz kılıyordu .. Yani ben bunu X-Code'da görebilir ve bir araya getirebilir, şimdi her şey yolunda gidiyor! (URL Türleri özelliği).


0

Benim durumumda, info.plist'imde LSApplicationQueriesSchemes ve CFBundleURLTypes anahtarları zaten vardı, bunları info.plist'e ayrı ayrı eklediğimde. ikincisini okumadı ve tanımıyor. Bu yüzden önceki LSApplicationQueriesSchemes ve CFBundleURLTypes anahtarlarına değerler eklemek sorunumu çözdü.


-3

Ben de aynı sorunla karşı karşıyaydım. Sonra şunu yaptı:

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

ve sorun şimdi düzeltildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.