2015-04-02 4 views
1

Мое приложение использует Facebook, чтобы делиться и публиковать сообщения. Он отлично работает, пока я не удалю приложение из Facebook через Настройки -> Приложения.EXC_BAD_ACCESS в [FBSession dealloc] после удаления приложения из Facebook

Вариант использования: я разрешаю на Facebook через свое приложение, делаю любые социальные действия, открываю приложение, удаляю приложение из приложений на Facebook, пытаюсь сделать что-либо или поделиться снова.

После этого появляется диалоговое окно входа в систему и в 50% случаев сбой приложения на [FBSession dealloc] (на Речь 1, как показано в Навигаторе). Трассировка стеки выглядит следующим образом:

0x141718: blx 0x850a90     ; symbol stub for: objc_msgSend 
0x14171c: movw r0, #0x5586 
0x141720: mov r1, r5 
0x141722: movt r0, #0x92 
0x141726: add r0, pc 
0x141728: ldr r0, [r0] 
0x14172a: ldr r0, [r4, r0] 
0x14172c: blx 0x850a90     ; symbol stub for: objc_msgSend 
0x141730: movw r0, #0x557a <<< EXC_BAD_ACCESS 

Оказывается, что перед аварией FBSession находится в FBSessionClosed состояния. У меня есть метод предосторожности, который проверяет это право перед открытием нового сеанса и очищает старые сессии, как это:

FBSession* session = [FBSession activeSession]; 
    [session closeAndClearTokenInformation]; 
    [session close]; 
    [FBSession setActiveSession:nil]; 

Затем я открываю новую сессию со следующим методом

[FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions", @"user_likes"] 
            defaultAudience:FBSessionDefaultAudienceFriends 
             allowLoginUI:YES 
            completionHandler: ... ] 

и имею крушение.

Может ли кто-нибудь сказать, как исправить эту проблему?

Спасибо.

ПОЗДНЕЕ ОБНОВЛЕНИЕ. Оказалось, что я дважды удалял некоторый объект NSString в свой код. Таким образом, проблема не связана с клиентской библиотекой Facebook iOS. Будьте в безопасности вокруг MRR, ребята.

+0

На данный момент я просто отказался от идеи повторного входа в систему, если он удалил приложение из Facebook. Просто позвольте ему делать какие-либо социальные действия и сообщать, что произошла ошибка. –

ответ

0

Я бы посоветовал проверить один раз с помощью инструмента Инструмент, у вас будет четкое представление, почему и где именно он падает.

 Смежные вопросы

  • Нет связанных вопросов^_^