com.facebook.sdk error 2 en iOS

Tengo una aplicación Phonegap que se ejecuta tanto en iOS como en Android. La aplicación tiene una function de inicio de session de Facebook que funcionó hasta hace unos días. Algunos de nuestros beta testers han informado de un error 'La operación no pudo completarse com.facebook.sdk error 2'. Los dispositivos de estos probadores varían: iPhone 5, iPhone 4s, iPod Touch, iOS 5.1.1 y iOS 6.0.

Utilizamos el último SDK de Facebook y un complemento de inicio de session de Facebook de Phonegap ( https://github.com/davejohnson/phonegap-plugin-facebook-connect/ ).

Hice algunas investigaciones y encontré los siguientes motivos por los cuales podría ocurrir este error:

  • BundleIdentifier y BundleURLName en mi file info.plist no coinciden con el Id. De lote en la aplicación Native iOS en la configuration de mi aplicación de Facebook.
  • La aplicación todavía está en modo Sandbox
  • La aplicación está deshabilitada en la Configuración de Facebook (configuration del dispositivo -> Facebook -> Permitir que estas aplicaciones utilicen su count).
  • iOS 6.0 no permite pedir permissions de lectura y escritura al mismo time (no estoy seguro si tengo este derecho).

El siguiente es el caso:

  • BundleIdentifier y BundleURLName coinciden.
  • La aplicación no está en modo Sandbox.
  • La aplicación no aparece en 'Permitir que estas aplicaciones utilicen su count' de todos los usuarios
  • Los constructores del complemento Phonegap dijeron que habían corregido el error de permissions de iOS 6.0 ( https://github.com/davejohnson/phonegap-plugin-facebook-connect/pull/216 )

Es un error muy incoherente (en mi caso). Solo puedo reproducir el error si apago la aplicación en 'Permitir que estas aplicaciones utilicen tu count' (en mi caso, la aplicación aparece allí), pero puedo corregir el error volviendo a permitir la aplicación. En este momento, la mayoría de los evaluadores no tienen este error (más), pero el error permanece en un iPod (donde la aplicación no figura en 'Permitir que estas aplicaciones utilicen su count').

¿Alguien tiene alguna idea de por qué estoy teniendo este error?

Resulta que un error de com.facebook.sdk 2 puede traducirse en varias cosas. Estoy buscando algún tipo de tabla de traducción de errores de SDK de Facebook, pero no puedo encontrar una. En mi caso: El error 2 com.facebook.sdk sucedió porque la connection se agotó. Los usuarios que obtuvieron este error tuvieron una mala connection de networking / Wi-Fi .

Implementamos un sistema de logging de errores, que registró los detalles del error cada vez que se produjo un error al iniciar session en Facebook. En esos loggings pudimos ver un error com.facebook.sdk ocurriendo bastante, pero se resolvió cada vez que el usuario intentaba iniciar session nuevamente después de unos segundos.

Puede deberse a mi incapacidad para encontrar la documentation adecuada, pero estaba y aún estoy bastante frustrado por la vaguedad de estos errores de SDK. Hay una gran cantidad de documentation sobre la request de permiso (que puede dar como resultado el error com.facebook.sdk 2), pero aparentemente este error puede ser causado por más cosas. Sería bueno ver esto documentado en algún lugar también.

Esto sucedió para una aplicación que estaba usando. Pude evitarlo yendo a la configuration de mi iPhone, seleccionando Facebook, tocando mi nombre y haciendo clic en "eliminar count".

Luego pude iniciar session con la aplicación sin problema.

Volví a la configuration | Facebook y volví a enviar mis cnetworkingenciales.

La aplicación todavía funciona bien.

Tuve este error cuando olvidé verificar la aplicación Native iOS (en la página de desarrolladores de Facebook) y escribí mi ID de package, que es igual que el identificador de package en tu proyecto Xcode. (incluido el nombre del proyecto al final). También tenía la configuration en la página de desarrolladores de Facebook que habilitaba el modo Sandbox. También deshabilité el modo Sandbox para que esto funcione.

Estuve averiguando el motivo de este error durante mucho time en lo que respecta a trabajar con iOS 5.0 anterior para una mayor cobertura de dispositivos. Acabo de recibir el error 400 a través de la debugging de la request de Facebook. Así que finalmente, me di count de que la razón estaba en FBSessionDefaultAudience desconocido para FBSession (se estaba probando a 6.0+ y el api nativo de Facebook me dio una razón de error). Y cuando utilicé

+ (BOOL)openActiveSessionWithPublishPermissions:(NSArray*)publishPermissions defaultAudience:(FBSessionDefaultAudience)defaultAudience allowLoginUI:(BOOL)allowLoginUI completionHandler:(FBSessionStateHandler)handler; 

este error finalmente desapareció.

INTENTE PRIMERO:

 Go to Settings app -> Facebook -> Your App -> Switch it off and back on again. 

Esto funcionó para mí, y no me obligó a eliminar la count fb y volver a iniciar session como sugiere @seans23. Si no hubiera funcionado, lo habría intentado a continuación, pero aparentemente esto fue un truco para restablecer el estado.

Este enfoque funcionó para mí. (iOS 8)

El context:

  • El button FB "Iniciar session" no abrió la aplicación FB ni FB en Safari
  • FK SDK aparecido err. 2.
  • "Mi aplicación" no se mostró en la configuration de FB para habilitarla para su uso.

La solución:

  • Borrar Safari Web Cache (puede ser opcional)
  • Eliminar la aplicación de Facebook
  • Eliminar Facebook Messenger
  • Instale su aplicación e inicie session

La idea es eliminar tanto la aplicación de Facebook como el Messenger.

Para mí, la razón era que estaba probando mi aplicación en un simulador. Quería compartir una foto y el dialog simplemente no apareció, así que conecté mi iPhone y todo salió bien después.

Tuvimos el mismo problema. Como resultado, la razón realmente está en el time de espera en el lado de FB, y especialmente si este time de espera se produce mientras la página de "Inicio de session de FB" todavía está encendida, y el usuario hace clic en "cancelar". En ese caso, el error 2 siempre se vuelve a ajustar. Por lo tanto, si desea repetir y probar esta situación, simplemente click el button "cancelar" mientras se conecta en FB.

En mi caso, creé la aplicación con mi count de empresa y me olvidé de agregar mi perfil personal con una function de desarrollador. Después de pensarlo todo salió bien.

Aclamaciones.