2013-09-11 2 views
0

Я пытаюсь создать приложение, которое извлекает идентификатор электронной почты текущего пользователя, идентификатор пользователя, имя пользователя из своей учетной записи google +. Часть кода выглядит следующим образом,Как исправить - [__ NSCFString gtm_stringByUnescapingFromURLArgument] в Google + аутентификации

- (IBAction)googleSigninBtnTapped:(id)sender 
{ 

    [GPPSignInButton class]; 
    [GPPSignIn sharedInstance].clientID =[NSString stringWithFormat:@"MY APP ID"]; 
    GPPSignIn *signIn = [GPPSignIn sharedInstance]; 
    signIn.delegate = self; 
    signIn.shouldFetchGoogleUserEmail = YES; 
    signIn.shouldFetchGoogleUserID = YES; 
    signIn.actions = [NSArray arrayWithObjects: 
         @"http://schemas.google.com/AddActivity", 
         @"http://schemas.google.com/BuyActivity", 
         @"http://schemas.google.com/CheckInActivity", 
         @"http://schemas.google.com/CommentActivity", 
         @"http://schemas.google.com/CreateActivity", 
         @"http://schemas.google.com/ListenActivity", 
         @"http://schemas.google.com/ReserveActivity", 
         @"http://schemas.google.com/ReviewActivity", 
         nil]; 
    [signIn trySilentAuthentication]; 
} 

(void)finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError)error 
{ 
if (error) 
{ 
NSLog(@"Status: Authentication error: %@", error); 
} 
else 
{ 
NSLog(@"Status: Authenticated"); 
NSLog(@"Email: %@",[GPPSignIn sharedInstance].authentication.userEmail); 
GTLServicePlus plusService = [[[GTLServicePlus alloc] init] autorelease]; 
plusService.retryEnabled = YES; 
[plusService setAuthorizer:[GPPSignIn sharedInstance].authentication]; 
GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"]; 
[plusService executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLPlusPerson *person, NSError *error) 
{ 
if (error) 
{ 
GTMLoggerError(@"Error: %@", error); 
} 
else 
{ 
[person retain]; 
NSLog(@"%@", person.displayName); 
NSLog(@"%@", person.identifier); 
} 
}]; 
} 
} 

Но когда я пытаюсь выполнить мое приложение, он получает разбился, сказав, что

«- [__ NSCFString gtm_stringByUnescapingFromURLArgument]: непризнанные селектор направлен например 0x9e435b0»

Может ли кто-нибудь помочь мне в этом ... !!!

Спасибо заранее!

ответ

5

Да, вам нужен флаг компоновщика -ObjC, он не находит одну из категорий из структуры GoogleOpenSource.

См Шаг 3 в руководстве по установке: https://developers.google.com/+/mobile/ios/getting-started#step_3_initialize_the_google_client

В основном, в других Флаги Linker, добавьте -ObjC (регистр букв важен, обратите внимание!). Также убедитесь, что в проект включены компоненты GooglePlus и GoogleOpenSource.

+0

Спасибо Чувак ... Но я уже вошел в -ObjC в другой области флагов компоновщика ... На самом деле я сделал этот код с ссылкой на видео Google, которая объясняет шаг пошаговая настройка ... Это моя проблема сейчас .. Я не могу найти, где я совершил ошибку. – user2723604

+0

И вы определенно импортировали как фреймворки (googleopensource, так и googleplus)? –

+0

Я ... я сделал ... позвольте мне сказать, что я сделал. 1. Введенные необходимые фреймворки 2.entered -ObjC 3.entered bundleid & redirect url 4. вложенный код ... thats it ... – user2723604

0

Сложение с _objc другого флага называется -lC++