2016-09-25 2 views
-3

У меня есть корпорация (с лицензией corp apple), это своего рода социальная сеть компании, это около 1200 пользователей с iOS 10 и некоторые из них (~ 2%) сообщают, что приложение может попасть в черный экран, и ничто не помогает (убить приложение и перезагрузить устройство бесполезно), просто удалите приложение и установите его снова. Это может произойти в любое время, даже сразу после первого запуска, или может работать в течение недели, а затем черный экран. Я думаю, что это проблема с iOS 10 и корпоративной лицензией, но я не могу быть уверен, потому что я все еще не могу получить устройство с этой проблемой.iOS 10 обновление черный экран мое приложение, переустановить помогает, перезапустить приложение - нет

Приложение находится в Obj-C. Нет xibs или раскадровки. На iOS 6 - 9 все отлично.

Доза любой сталкивается с той же проблемой?

+0

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

+0

Александр Яценко - похоже, что некоторые люди начинают чаще видеть этот вопрос. Вы можете отправить и прокатиться на поезде кармы (не то, что вам нужно!) – rkabir

ответ

0

Черный экран появляется на 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]; 
Смежные вопросы