Porównaj ceny domen i usług IT, sprzedawców z całego świata

iOS: Błąd tokena dostępu do logowania na Facebooku: Powrót do ładowania tokena dostępu z NSUserDefaults z powodu błędu symulatora


Po skonfigurowaniu go na podstawie instrukcji nadal otrzymuję ten błąd i nie mogę pomyślnie korzystać z logowania na Facebooku w mojej aplikacji. Używam go na XCode 8.1 i używam symulatora iOS 10.1.
Postępowałem zgodnie z samouczkiem Facebook iOS SDK i umieściłem przycisk logowania do Facebooka w moim kontrolerze widoku. Wyświetliłem NSUserdefaults, a jednym z kluczy jest „com.facebook.sdk: serverConfiguration”, więc uważam, że jest tam zapisywany.
- (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]);
}

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli problem polega na tym, że symulator iOS wylogowuje się po ponownym uruchomieniu aplikacji, jest to spowodowane błędem w Facebook SDK. Zapobiega to buforowaniu tokenu dostępu przez symulator.
Możesz to naprawić, dodając następujący wiersz:
key = [NSString stringWithFormat:@"%@_fix", key];
w
FBSDKKeychainStore.m: 94
i
FBSDKKeychainStore.m: 135
tuż przed:
[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Aby pozbyć się tych dość irytujących komunikatów dziennika (

to wszystko czym oni są
), iść

w

plik FBSDKCoreKit FBSDKKeychainStore.m i zakomentuj wiersze 93 i 134:
//NSLog(@"Falling back to storing access token in NSUserDefaults because of simulator bug");

Voila ... odszedł!

Uwaga:
dotyczy to zestawu SDK serwisu Facebook dla systemu iOS w wersji 4.23.0.


W przypadku CocoaPods:

plik można znaleźć w obszarze roboczym Xcode pod:
Moduły & > Moduły & > FBSDKCoreKit & > FBSDKKeychainStore.m

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się