2016-12-08 8 views
5

Po skonfigurowaniu go na podstawie instrukcji nadal otrzymuję ten błąd i nie mogę skutecznie używać Facebooka Zaloguj się w mojej aplikacji. Używam go w XCode 8.1 i przy użyciu symulatora iOS 10.1.iOS: Błąd dostępu do tokena z dostępem do Facebooka: Powrót do ładowania tokenu dostępu z NSUserDefaults z powodu błędu symulatora

Wykonałem kroki opisane w przewodniku dla systemu iOS SDK na Facebooku i umieściłem przycisk logowania do Facebooka w moim kontrolerze widoku. Wyświetlałem NSUserdefaults, a jednym z kluczy jest "com.facebook.sdk: serverConfiguration", więc uważam, że jest tam zapis.

- (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]); 
} 
+0

Co próbowałeś? Edytuj, aby pokazać nam swój kod i wyjaśnić, dlaczego to nie zadziałało. –

+0

Dodano kod, który zaimplementowałem. Po prostu poszedłem za protokołem wymienionym na podręczniku do iOS SDK na Facebooku. Znowu zrobiłem tę samą kompilację, ale problem wciąż się pojawia. – SabCo

Odpowiedz

2

Jeśli problem jest, że iOS Simulator jest wylogowanie po ponownym uruchomieniu aplikacji, jest to spowodowane błędem w Facebooku SDK. Zapobiega to buforowaniu pamięci tokena dostępu.

Można rozwiązać ten problem poprzez dodanie następującej linii:

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

w FBSDKKeychainStore.m:94 i FBSDKKeychainStore.m:135 tuż przedtem:

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

+0

Linie kodu, które odsyłasz, już nie istnieją. Jak zaktualizować odpowiedź? Dzięki – OhadM

+0

nadal działa w FBSDKCoreKit 4.18.0. Zobacz także https://github.com/facebook/facebook-ios-sdk/blob/f7531a838a1ec3308721f335e801ac9f508feee4/FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStore.m –

+0

Naprawdę nie mogę znaleźć wiersza klucza kodu = [NSString stringWithFormat: @ "% @", klucz]; czy czegoś brakuje? – OhadM

0

aby pozbyć się tych dość denerwujące komunikaty dziennika (to wszystko one są), przejdź do FBSDKCoreKit's FBSDKKeychainStore.m plików i komentarz linie 93 i 134:

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

voila ... zniknął!

Uwaga:Jest to aktualne dla pakietu Facebook SDK dla systemu iOS w wersji 4.23.0.

Dla CocoaPods: pliku można znaleźć w obszarze roboczym Xcode pod:
Pods> Pods> FBSDKCoreKit> FBSDKKeychainStore.m

Powiązane problemy