Facebook iOS SDK FBSession release message sent to deallocated object
Каким-то необычайно странным образом столкнулся со следующей проблемой:
- Запускаем приложение
- Запрашиваем права на publish_actions
- Даем отказ в правах
- Перезапускаем приложение
- Получаем crash на objc_release (двойной релиз)
Включив Enable Zombie Objects, локализовал проблему:
[FBSession release] message sent to deallocated instance
В проекте выключен ARC, код брал из документации FB. Покопавшись еще немного (и приняв во внимание, что, скорее всего, FBSession релизится при logout) нашел функцию, которая приводила к крашу:
void IOSFacebook::logout() {
[FBSession.activeSession closeAndClearTokenInformation];
[FBSession.activeSession close];
// [FBSession setActiveSession:nil]; Эта строчка вызывала краш
token.clear();
refreshAccount();
}
Не знаю что конкретно вызывало краш, обозначенная строчка ничего криминального не делала, но закомментив ее, все заработало