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