iOS: error de token de acceso de inicio de session de Facebook: volver a cargar el token de acceso de NSUserDefaults debido a error de simulador

Después de configurarlo según las instrucciones sigo recibiendo este error y no puedo utilizar con éxito el inicio de session de Facebook en mi aplicación. Lo estoy ejecutando en XCode 8.1 y usando un simulador iOS 10.1.

Seguí los pasos en la guía SDK de Facebook y puse el button de inicio de session de Facebook en mi controller de vista. Mostré NSUserdefaults y una de las teclas es "com.facebook.sdk: serverConfiguration", así que creo que está guardando allí.

- (void)viewDidLoad { [super viewDidLoad]; if ([FBSDKAccessToken currentAccessToken]) { // User is logged in, do work such as go to next view controller. NSLog(@"test"); } else { FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init]; loginButton.center = self.view.center; [self.view addSubview:loginButton]; } _loginButton.readPermissions = @[@"public_profile", @"email", @"user_friends"]; NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]); } 

Si el problema es que el Simulador de iOS se desconecta después de reiniciar la aplicación, esto se debe a un error en el SDK de Facebook. Impide que el simulador almacene en caching el token de acceso.

Puede arreglar esto agregando la siguiente línea:

key = [NSString stringWithFormat:@"%@_fix", key];

en FBSDKKeychainStore.m:94 y FBSDKKeychainStore.m:135 justo antes:

[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];

Para deshacerse de estos posts de logging bastante molestos ( eso es todo lo que son ), vaya al file FBSDKKeychainStore.m de FBSDKCoreKit y a las líneas de comentario 93 y 134:

 //NSLog(@"Falling back to storing access token in NSUserDefaults because of simulator bug"); 

Voilá … ¡ido!

Nota: Esto es actual para Facebook SDK para iOS versión 4.23.0.

Para CocoaPods: El file se puede encontrar en su espacio de trabajo Xcode en:
Pods> Pods> FBSDKCoreKit> FBSDKKeychainStore.m