2015-08-13 14 views
16

Ho riscontrato un problema con il nuovo FBSDK. Ogni volta che provo a chiamare i logInWithReadPermissions metodo di login, ottengo questo messaggio di errore:Facebook SDK 4.5 IOS 9

ERROR : "canOpenUrl : failed for url "fbauth2://" error: "(null)"

ho il mio file di configurazione .plist seguendo la ios9 tuto (https://developers.facebook.com/docs/ios/ios9) su dev.facebook. Quindi, ho ottenuto il dizionario NSAppTransportSecurity e l'array LSApplicationQueriesSchemes (con la stringa "fbauth2" su di esso)

Sapresti come risolvere questo errore?

+1

hai mai risolvere questo problema? –

+1

è già stato risolto? –

risposta

3

1] Autenticazione in Developer.facebook e generare Facebook Id come: => 460481580805052

2] Imposta codice binario che: No Da Impostazioni Costruire

3] Impostare File Plist

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeRole</key> 
     <string>Editor</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb460481580805052</string> 
     </array> 
    </dict> 
</array> 

<key>FacebookAppID</key> 
<string>460481580805052</string> 

<key>LSRequiresIPhoneOS</key> 
<true/> 
<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>akamaihd.net</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <false/> 
     </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> 
    </dict> 
</dict> 

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>fbapi</string> 
    <string>fbapi20130214</string> 
    <string>fbapi20130410</string> 
    <string>fbapi20130702</string> 
    <string>fbapi20131010</string> 
    <string>fbapi20131219</string> 
    <string>fbapi20140410</string> 
    <string>fbapi20140116</string> 
    <string>fbapi20150313</string> 
    <string>fbapi20150629</string> 
    <string>fbauth</string> 
    <string>fbauth2 </string> 
    <string>fb-messenger-api20140430</string> 
    <string>fb-messenger-platform-20150128</string> 
    <string>fb-messenger-platform-20150218</string> 
    <string>fb-messenger-platform-20150305</string> 
</array> 

4] Download 4 Sdk Framework come

=>Bolts.framework 
=>FBSDKCoreKit.framework 
=>FBSDKLoginKit.framework 
=>FBSDKShareKit.framework 
4

Ho lo stesso problema con la libreria di accesso di Google+, ma ho risolto l'aggiornamento di Facebook all'ultimo SDK versione 4.6.0!

Ricordatevi di cambiare il vostro plist chiave LSApplicationQueriesSchemes dopo l'aggiornamento in questo modo:

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

Solo una nota, secondo la FAQ: Perché vedo i messaggi della console come 'canOpenURL: non riuscito per URL: "fb ...: //' o Questo è un avviso che indica il Xcode il canOpenURL:? Chiamata restituito falso Finché hai configurato la voce LSApplicationQueriesSchemes nel tuo plist come descritto sopra, puoi ignorare questo avviso –

0

Ho avuto lo stesso problema, ma correva l'applicazione sul mio cellulare, che ha facebook installato e ha funzionato. Potrebbe essere perché non funziona sul simulatore o Facebook deve essere installato. Qualcuno ha trovato qualcos'altro?

+0

Il simulatore funziona per me. Devo solo aggiungere 'fbauth2'. Verra reindirizzato al sito web di Facebook. –

5

Se continui ad avere problemi, resetta il simulatore, questo ha funzionato per me.

+0

Sto riscontrando questo problema su un dispositivo reale, plists aggiornato – CQM

+0

È andato in giro in cerchio fino a quando non si è ripristinato il simulatore. Grazie! – kwcto

0

se hai già articoli su LSApplicationQueriesSchemes. lascia prima gli elementi di Facebook.

Questo ha risolto il mio problema.

+0

Puoi per favore approfondire questo? Per favore? –

+0

Questo è il modo sbagliato LSApplicationQueriesSchemes com.sample.appid fbapi fb-messenger-api fbauth2 fbshareextension Ponja

+0

Grazie per raggiungere i me . Per favore, spiega una cosa qui; com.sample.appid è in bundle indentifier o, ad esempio, la mia app è xyz su facebook e il mio appid è 1234567890 quindi questo è com.xyz.1234567890? Quale dei due .. grazie per il chiarimento però. –

-2

Usa come questo in info.plist

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb123124123123</string> 
      <string>fbauth2</string> 
     </array> 
    </dict> 
</array> 

Dopo di che è necessario rimuovere la vostra applicazione da editore e lanciare di nuovo.

+0

Questo è sbagliato. Ciò indicherebbe che la tua app risponde a un URL con fbauth2: scheme. Questo schema è responsabilità di Facebook. –

0

Da Facebook FAQ in fondo il link: https://developers.facebook.com/docs/ios/ios9

This is an Xcode warning indicating the the canOpenURL: call returned false. As long as you have configured the LSApplicationQueriesSchemes entry in your plist as described above, you can ignore this warning