ios facebook facebook-ios-sdk ios9 app-transport-security

Simulador de inicio de sesión de Facebook para iOS 9-canOpenURL: error para URL: “fbauth2:///”-error: “(nulo)”



facebook-ios-sdk ios9 (9)

¿Por qué veo mensajes de consola como ''canOpenURL: falló para URL: "fb ...: //'' o?

Esta es una advertencia de Xcode que indica que canOpenURL: call devuelve false. Siempre que haya configurado la entrada LSApplicationQueriesSchemes en su plist como se describe anteriormente, puede ignorar esta advertencia .

He actualizado a Xcode 7 y al último SDK de iOS. He agregado las entradas apropiadas en el plist de mi aplicación:

El inicio de sesión de Facebook de mi aplicación funciona bien en el dispositivo. Sin embargo, en el simulador de iOS 9, obtengo:

-canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"

Y el inicio de sesión no funciona. He visto un problema de inicio de sesión en Facebook: canOpenURL: falló para URL: "fbauth2: ///" - error: "(null)" pero tengo el marco FBSDKCoreKit. También he visto Facebook SDK 4.5 IOS 9 pero su respuesta no resuelve mi problema.

¿Por qué recibo este error en el simulador y no en el dispositivo a pesar de haber hecho la lista de verificación en https://developers.facebook.com/docs/ios/ios9 ?


1] Autenticación en Developer.facebook y generar ID de Facebook como: => 460481580805052

2] Establecer código de bits: No desde la configuración de compilación

3] Configurar archivo 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] Descargar 4 Sdk Framework como

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


De acuerdo con Facebook:

iOS SDK es compatible con SafariViewController, que nos permite cambiar los cuadros de diálogo mostrados en la web en lugar de hacer un cambio de aplicación. Este SDK beta determinará automáticamente la mejor experiencia de cambio de aplicación para las personas en función de su dispositivo. Por ejemplo, el incumplimiento de la experiencia de la persona a través de SafariViewController en lugar de Safari para Facebook Login ...

Enlace de referencia de Facebook: https://developers.facebook.com/bugs/786729821439894/?search_id

Enlace de referencia de la pila: https://.com/a/32593070/2905967


Después de actualizar el archivo .plist su aplicación con la matriz LSApplicationQueriesSchemes , que parece haber hecho ya:

Luego , verifique que su SDK de Facebook sea ​​la versión 4.6.0 . Siga las https://developers.facebook.com/docs/ios/ios9 si no es así.

Por último , que probablemente es donde surge el problema, es restablecer el contenido y la configuración de su simulador

Para restablecer su simulador:

  1. Elige simulador
  2. Seleccione Restablecer contenido y configuración
  3. y la opción Restablecer

El Simulador de Apple, incluso el IDE, tendrá errores y el cierre y la reapertura, junto con el restablecimiento del simulador, siempre son algo a considerar al principio en su búsqueda de una solución.

¡Espero que esto ayude!


Esto no es un problema. El SDK de FB está intentando abrir la aplicación nativa de Facebook que tiene el tipo fbauth2: // url. En Simulator no está disponible, por lo que solo pone un registro de que no puede abrir la aplicación nativa de Facebook. Puede configurar la cuenta de Facebook en Simulator y luego indicarle al botón de inicio de sesión de FB que use la cuenta nativa de Facebook en lugar de abrir la vista web. Pero Facebook afirma que millones de personas usan Facebook en el navegador y, por lo tanto, en iOS 9 han usado el nuevo SFSafariViewController como el comportamiento predeterminado para los inicios de sesión de Facebook incluso en dispositivos. Puedes intentar usar el Facebook nativo y ver si funciona.

Consulte este enlace para la discusión.

https://www.facebook.com/login.php?next=https%3A%2F%2Fdevelopers.facebook.com%2Fbugs%2F786729821439894%2F%3Fsearch_id


Para iOS 9 o superior, agregue este método en su archivo AppDelegate:

https://.com/a/43515243/535013


Reduje mi SDK de Facebook de la versión 4.7 a 4.5.1 y funcionó bien tanto en el simulador como en el dispositivo iphone (sin la aplicación de Facebook instalada).


Siguiendo estos pasos, puede evitar este error:

1) vaya a -> Archivo de soporte

2) info.plist

3) Haga clic derecho en info.plist -> Abrir como -> Seleccionar código fuente

* Agregue el código a continuación dentro de <dict>...</dict> *

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


utilice LSApplicationQueriesSchemes o agregue a plist su ID de aplicación.