iOS 10 обновить черный экран моего приложения, переустановить помогает, перезапустить приложение - нет
У меня есть корпоративное (с корпоративной лицензией Apple) приложение, это своего рода социальная сеть компании, около 1200 пользователей с iOS 10 и некоторые из них (~2%) сообщают, что приложение может упасть на черный экран, и ничего не помогает (убить приложение и перезагрузка устройства бесполезно), только удалить приложение и установить заново. Это может произойти в любое время, даже сразу после первого запуска, или может нормально работать неделю, а затем и черный экран. Я думаю, что это проблема с iOS 10 и корпоративной лицензией, но я не могу быть уверен, потому что я все еще не могу получить устройство с этой проблемой.
Приложение находится в Obj-C. Нет XIBS или раскадровки. На iOS 6 - 9 все отлично.
Кто-нибудь сталкивается с той же проблемой?
1 ответ
Черный экран появляется на iOS 10, если приложение активно загружает сеанс, и пользователь убивает приложение (или оно разрушается). Доза перезагрузки устройства не помогает.
Решение, которое я нашел: вы должны сгенерировать случайную часть идентификатора сеанса загрузки.
NSString *seed = [NSString stringWithFormat:@"%ul", arc4random()];
NSString *identifier = [NSString stringWithFormat:@"com.company.app.%@", seed];
NSURLSessionConfiguration *sessionConfiguration = nil;
if([NSURLSessionConfiguration respondsToSelector:@selector(backgroundSessionConfigurationWithIdentifier:)])
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:identifier];
else
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfiguration:identifier];