ios - puedo - API de Parse: el inicio de sesión de Facebook no funciona en el dispositivo de iPhone
porque me saca del facebook mi celular (2)
Cuando hago clic en Iniciar sesión con el botón Facebook, en el IOS simultor funciona bien. Obtener el objeto PFUser. Luego, si ejecuto el mismo código en el dispositivo iPhone, obtengo el objeto PFUser como nulo. No hay error.
Code:
func loginWithFacebook()
{
print("login with facebook")
let permissions = ["public_profile"]
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: {
(user: PFUser?, error: NSError?) -> Void in
print("################")
if let error = error {
print(error)
} else {
if let user = user {
print(user)
}
}
})
}
IDE: xcode 7 Idioma: Swift2 Facebook SDK: 4.6.0 Parse: 1.8.4 dispositivo: iPhone 5s He verificado .plist tiene todas las claves que se requieren. También se verificó el identificador del paquete para los errores de error. Todos se ven bien. La aplicación de Facebook está activa.
¿Alguna ayuda?
Consulte esta guía para resolver el problema http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/
El problema tiene que ver con App Transport Security. Algunos cambios en su info.plist y todo estará listo :)
En AppDelegate.swift, tengo el siguiente código:
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(app, openURL: url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String,
annotation: options["UIApplicationOpenURLOptionsOpenInPlaceKey"]!)
}
Según los comentarios en el UIApplicationDelegate , debemos usar la aplicación: openURL: options :, pero todavía no está funcionando.
@available(iOS, introduced=4.2, deprecated=9.0, message="Please use application:openURL:options:")
optional public func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
Ahora he cambiado al siguiente código:
func application(application: UIApplication,
openURL url: NSURL,
sourceApplication: String?,
annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(
application,
openURL: url,
sourceApplication: sourceApplication,
annotation: annotation)
}
Luego, comenzó a funcionar bien tanto en el simulador como en el dispositivo iPhone.