Приложение iPhone вылетает после первой авторизации / подключения Facebook Connect - PullRequest
4 голосов
/ 24 августа 2011

Я всюду искал ответ, но не смог его найти.
Проблема:

  • У меня есть приложение для iPhone (в AppStore), которое использует Facebook iPhone SDK .
  • Я использую SDK для авторизации пользователя следующим образом:
NSArray *permissions =  [NSArray arrayWithObjects: @"offline_access",  
@"publish_stream", @"user_birthday", @"user_hometown", @"user_interests",  
@"user_location", @"email" ,nil];  

[((MyAppDelegate *)AppDelegate).facebook authorize:permissions delegate:self];

В AppDelegate у меня есть этот код:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  
{  
    return [self.facebook handleOpenURL:url];  
}

А теперь:
- SDK открывает Safari и отображает широко известный экран авторизации на Facebook.
- Пользователь нажимает кнопку «Разрешить».
- iOS пытается вернуться в приложение.
- Но тогда - БАМ! - CRASH! - До запуска приложения назад !!

ОЧЕНЬ ВАЖНО:

  • Пользователи сталкиваются с этой аварией ТОЛЬКО при первом запуске приложения после установки.
    Когда они снова открывают приложение после сбоя, все работает отлично, и они даже входят в систему
  • Этот сценарий не может быть воспроизведен впоследствии, даже если пользователь удаляет приложение и устанавливает его снова. это происходит только при первом запуске первой установки.

Здесь действительно нужна помощь. 90% моих пользователей получают этот сбой на производстве.
Большое спасибо.

1 Ответ

1 голос
/ 06 января 2012

в этой строке:

[((MyAppDelegate *)AppDelegate).facebook authorize:permissions delegate:self];

Вы устанавливаете делегата на self, поэтому класс должен реализовать FBSessionDelegate с этими функциями:

(void)fbDidLogin;
(void)fbDidNotLogin:(BOOL)cancelled;
(void)fbDidLogout;
...