Estoy tratando de usar Xcode 8 para crear una aplicación con inicio de sesión de Facebook usando Swift 3. Cuando cambio de nuevo iOS Simulator 9.3, funciona. En iOS 10, recibo este error:
""fbauth2:/" The operation couldn’t be completed. (OSStatus error -10814.)"
y
Optional(Error Domain=com.facebook.sdk.login Code=308 "(null)")
¿Alguien tiene una solución para esto?
Nota 1 :
Después de la depuración, este problema es que FBSDK no puede actualizarse expect_challange
. La función SecItemUpdate
interior security.framework
no funciona. Este es un problema de IOS 10
ios
swift
facebook-ios-sdk
ios10
trquoccuong
fuente
fuente
Respuestas:
El error OSStatus -10814 ocurre cuando
canOpenURL:
no se puede encontrar ninguna aplicación que pueda abrir esta URL (en realidad, Facebook está tratando de encontrar su aplicación llamandocanOpenURL:
con el argumento "fbauth2: /"). La impresión ocurre dentro de la función, por lo que no puede hacer nada con eso. Pero si va a ejecutar su aplicación en un dispositivo con la aplicación de Facebook instalada, no verá este error.El error 308 ocurre debido a la situación, cuando el valor, almacenado en el llavero no es igual al valor, que se almacena en los parámetros de finalización de Facebook (para obtener más información, puede consultar
-[FBSDKLoginManager completeAuthentication:expectChallenge:]
).Sucede porque Apple cambió la forma de trabajar con el llavero en iOS 10. Para solucionar este problema, simplemente debe ir a Objetivos-> Capacidades y habilitar el uso compartido de llavero (habilita el acceso al llavero para su aplicación):
Si está utilizando Xamarin (lea este enlace para obtener más información, gracias @dynamokaj):
fuente
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
e intentar reconstruir, sigue teniendo el mismo problema. Me estoy dando cuenta ahora de que el error que veo es más similar a este stackoverflow.com/questions/39091841/…El mismo problema estaba en mi aplicación, verifiqué muchas soluciones pero no me funcionó. Solucioné este problema usando el método siguiente.
Vaya a este enlace Seleccione su aplicación y configure su
info.plist
import
y agregue este código en suAppDelegate
fuente
La razón principal por la que aparece el siguiente error,
es que su simulador de iOS no tiene instalada la aplicación de Facebook. Hasta que instale la aplicación en su simulador de iOS, seguirá recibiendo el error. Intente ejecutar su aplicación iOS en un dispositivo iOS provisto con Facebook instalado y no volverá a ver el mensaje de error. ¡Espero que esto ayude!
fuente
En mi caso, la solución fue *:
* Según lo recomendado por @MoridinBG en la página de Github del SDK de Facebook
fuente
Este error también se puede producir si está utilizando FBSDKCoreKit o FBSDKLoginKit versión 4.39.0. Hubo un error en esta versión del SDK. Actualice a 4.39.1 o superior para solucionarlo. Detalles aquí .
Como nota al margen, otros usuarios mencionaron que este error se ve si no tiene Facebook instalado en el simulador. Eso es cierto, pero se supone que el SDK recurre automáticamente al método de inicio de sesión web cuando la aplicación no está instalada. Si eso no sucede, puede deberse a otro problema, como valores faltantes / mal configurados en su Info.plist (verifique LSApplicationQueriesSchemes) o métodos faltantes en su AppDelegate.
fuente
En mi caso, el problema fue Google Analytics. De forma predeterminada, parece que está agregando su propio controlador de vista en la parte superior del controlador de vista de la aplicación. Establecer "FirebaseAppDelegateProxyEnabled" en "NO" en {Your app} -Info.plist resolvió el problema.
fuente