изменить файл Info.plist во время выполнения программы:IOS - Facebook SDK - SSO - Вход без входа в диалоговом
-(void) setBundleUrlScheme:(NSString*)fbAppId {
NSString *path= [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
if(path){
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSMutableArray* bundleUrlTypesArray = [dict objectForKey:@"CFBundleURLTypes"];
NSMutableDictionary* bundleURLSchemes = [bundleUrlTypesArray objectAtIndex:0];
// set wanted fb app id to plist CFBundleURLSchemes
[bundleURLSchemes setObject:[NSArray arrayWithObject:[NSString stringWithFormat:@"fb%@", fbAppId]] forKey:@"CFBundleURLSchemes"];
// write back to file
[dict writeToFile:path atomically:YES];
}
}
И после этого, я пытаюсь логин на Facebook без диалога входа в систему (мое приложение позволяет SSO):
[FBSession openActiveSessionWithReadPermissions:@[@"basic_info"]
allowLoginUI:NO
pletionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
// error occured
if(error || state == FBSessionStateClosedLoginFailed) {
NSLog(@"ERROR:%@", error);
}
// session opened succefully, run query
else if (state == FBSessionStateOpen){
NSLog(@"state:%d", state);
NSLog(@"I LOGGED IN!");
sucessBlock();
}
}];
Каждый раз, когда я прохожу NO
в allowLoginUI, openActiveSessionWithReadPermissions
возвращает NO
и успех/провал блоки никогда не работает.
Как я могу войти на facebook без входа в систему?
Заранее спасибо.
но я вижу Info.plist реально изменить. Почему так? – gran33
@ gran33 вы тестируете его в симуляторе? Потому что на реальном устройстве вы не можете писать в основной комплект. – rckoenes
есть, на реальном устройстве. Я пишу на этой строке: [dict writeToFile: путь атомарно: ДА]; – gran33