iOS-игра падает при WWW-запросах с выкл. WI-FI

Программирование для iPhone & Android

iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение Nolex 28 окт 2016, 19:24

Всем привет!

Игра переодически крашится на iOS, если интернет выключен.
Воспроизвести ошибку очень сложно. Иногда надо 5 минут, иногда 5 часов.

На текущий момент получилось воспроизвести краш на таких вот устройствах:
1) iPod touch 5 (iOS 8.2); (на этом девайсе чаще всего крашится).
2) iPhone 5 (iOS 9.2.1);
3) iPhone 4 (iOS 7.1.2);
4) iPad 2 (iOS 7.1.2).
Все расшифрованные crashlogs in приложении!

Ошибка из логов:
"task_set_exception_ports" И "Service exited due to signal: Segmentation fault: 11":
Код: Выделить всё
Oct 26 17:57:53    iPod-Touch ReportCrash[1379] <Error>: task_set_exception_ports(B07, 400, D03, 0, 0) failed with error (4: (os/kern) invalid argument)
Oct 26 17:57:53    iPod-Touch ReportCrash[1379] <Notice>: ReportCrash acting against PID 1140
Oct 26 17:57:54    iPod-Touch ReportCrash[1379] <Notice>: Formulating crash report for process mygame222222[1140]
Oct 26 17:57:54    iPod-Touch mediaserverd[35] <Notice>: '' com.publisher.game.mygame222222(pid = 1140) setting DiscoveryMode = DiscoveryMode_None, currentDiscoveryMode = DiscoveryMode_None
Oct 26 17:57:54    iPod-Touch com.apple.xpc.launchd[1] (UIKitApplication:com.publisher.game.mygame222222[0xbc9b][1140]) <Notice>: Service exited due to signal: Segmentation fault: 11
Oct 26 17:57:55    iPod-Touch SpringBoard[42] <Warning>: Application 'UIKitApplication:com.publisher.game.mygame222222[0xbc9b]' crashed.
Oct 26 17:57:55    iPod-Touch UserEventAgent[17] <Warning>: id=com.publisher.game.mygame222222 pid=1140, state=0
Oct 26 17:57:55    iPod-Touch ReportCrash[1379] <Notice>: Saved report to /var/mobile/Library/Logs/CrashReporter/mygame222222_2016-10-26-175753_iPod-Touch.ips
Oct 26 17:57:56    iPod-Touch coreduetd[1383] <Warning>: [Warning] Services all disappeared, removing all dependent devices



Ошибка из symbolicated crashlog:
"EXC_BAD_ACCESS (SIGSEGV)" И "KERN_INVALID_ADDRESS":

symbolicated_iphone5_crash.jpg


Код: Выделить всё
    Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
    Exception Subtype: KERN_INVALID_ADDRESS at 0x70000018
    Triggered by Thread:  35
     
    Filtered syslog:
    None found
     
    Breadcrumb Trail: (reverse chronological seconds)
    3812   GC Framework: startAuthenticationForExistingPrimaryPlayer
    ......
    ......
    .....
    Thread 35 name:  Dispatch queue: com.unity3d.WebOperationQueue :: NSOperation 0x19f351a0 (QOS: LEGACY)
    Thread 35 Crashed:
    0   mygame222222                      0x005c37b2 WWW::FeedUnityWebStream(bool) (WWW.h:96)
    1   mygame222222                      0x0088b4ae iPhoneWWWDownloadBuffer::OnCompleteContent() (iPhoneWWW.mm:64)
    2   mygame222222                      0x00853422 UnityReportWWWFinishedLoadingData (TransportiPhone.cpp:260)
    3   mygame222222                      0x0002d050 -[UnityWWWConnectionDelegate connection:didFailWithError:] (WWWConnection.mm:239)
    4   CFNetwork                         0x25c20de0 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke + 56
    5   CFNetwork                         0x25c20d98 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 184
    6   CFNetwork                         0x25c20ebc -[NSURLConnectionInternal _withConnectionAndDelegate:] + 36
    7   CFNetwork                         0x25bfcf5c _NSURLConnectionDidFail(_CFURLConnection*, __CFError*, void const*) + 84
    8   CFNetwork                         0x25b9c7ce ___ZN27URLConnectionClient_Classic17_delegate_didFailEP9__CFErrorU13block_pointerFvvE_block_invoke + 86
    9   CFNetwork                         0x25b9b04e ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 70
    10  libdispatch.dylib                 0x25187dc2 _dispatch_client_callout + 22
    11  libdispatch.dylib                 0x2518f65a _dispatch_block_invoke + 450
    12  CFNetwork                         0x25ad31e2 RunloopBlockContext::_invoke_block(void const*, void*) + 18
    13  CoreFoundation                    0x254fd5f8 CFArrayApplyFunction + 36
    14  CFNetwork                         0x25ad30ca RunloopBlockContext::perform() + 182
    15  CFNetwork                         0x25ad2f94 MultiplexerSource::perform() + 216
    16  CFNetwork                         0x25ad2e28 MultiplexerSource::_perform(void*) + 48
    17  CoreFoundation                    0x255ad256 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
    18  CoreFoundation                    0x255ace46 __CFRunLoopDoSources0 + 454
    19  CoreFoundation                    0x255ab1ae __CFRunLoopRun + 806
    20  CoreFoundation                    0x254fdbb8 CFRunLoopRunSpecific + 516
    21  CoreFoundation                    0x254fd9ac CFRunLoopRunInMode + 108
    22  Foundation                        0x25d357ac -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 268
    23  Foundation                        0x25d8437c -[NSRunLoop(NSRunLoop) run] + 80
    24  mygame222222                      0x0002e226 __UnitySendWWWConnection_block_invoke_2 (WWWConnection.mm:361)
    25  Foundation                        0x25dee52c __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 8
    26  Foundation                        0x25d4fefe -[NSBlockOperation main] + 146
    27  Foundation                        0x25d422ee -[__NSOperationInternal _start:] + 774
    28  Foundation                        0x25df07ec __NSOQSchedule_f + 192
    29  libdispatch.dylib                 0x25191f96 _dispatch_queue_drain + 1762
    30  libdispatch.dylib                 0x2518af2e _dispatch_queue_invoke + 282
    31  libdispatch.dylib                 0x25193324 _dispatch_root_queue_drain + 400
    32  libdispatch.dylib                 0x25193192 _dispatch_worker_thread3 + 94
    33  libsystem_pthread.dylib           0x25320e0c _pthread_wqthread + 1024
    34  libsystem_pthread.dylib           0x253209fc start_wqthread + 8


Я запускаю игру и оставляю на долгое время. Из всех запросов выполняются только запросы от Unity Analytics, которые срабатывают каждые минут 5.

Я думаю проблема в этих запросах от Юнити аналитики и они роняют игру:

Код: Выделить всё
2016-10-28 14:28:19.414 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
2016-10-28 14:28:21.015 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
2016-10-28 14:28:51.014 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
2016-10-28 14:29:51.015 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
2016-10-28 14:31:51.013 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
2016-10-28 14:36:51.015 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
2016-10-28 14:41:51.015 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
2016-10-28 14:46:51.016 mygame222222[474:110334] MyDebug.url: https://api.uca.cloud.unity3d.com/v1/events
.......


Отключать Unity Analytics я не хочу, т-к перестанет работать платежка Unity IAP. Она без аналитики не функционирует.

1) Как решить проблему???
2) Может дописать этот класс \Classes\Unity\WWWConnection.mm и сделать там костыль??
Вот такого плана, на c#:

Синтаксис:
Используется csharp
if (wi_fi_status == false && url.Contains("api.uca.cloud.unity3d.com"))  return;


Похожие проблемы:
http://answers.unity3d.com/questions/12 ... build.html
http://web320hh.blogspot.com/2015/07/un ... 4-bit.html

Unity 5.4.2.
Xcode 8.0.
Windows 10.

Заранее спасибо!
У вас нет доступа для просмотра вложений в этом сообщении.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение [bm] 28 окт 2016, 20:35

Попробуйте патч версии https://unity3d.com/ru/unity/qa/patch-releases
Mafia Rush: universal iOS game _https://goo.gl/CKq4D Android _https://goo.gl/slFLXx
Shooter Ball: Android _https://goo.gl/21QyPw
skype: bmindfield
Аватара пользователя
[bm]
UNIверсал
 
Сообщения: 426
Зарегистрирован: 11 май 2010, 22:33
Откуда: Россия, Ижевск

Re: iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение DbIMok 28 окт 2016, 21:50

Да, такое если репортить, то с последнего патча. Не зря они с ними так частят.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.6k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение Nolex 29 окт 2016, 00:06

[bm] писал(а):Попробуйте патч версии https://unity3d.com/ru/unity/qa/patch-releases

Спасибо за совет! Я пересмотрел два патча (p1, p2). Там по этой теме (IL2CPP / iOS / WWW) - вроде ничего.

Думаете есть смысл пробовать?
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение Nolex 01 ноя 2016, 01:29

Получилось еще раз воспроизвести баг. На этот раз уже прямо в xcode.

Там видны логи с обращением к Unity Analytics. Это я прописал дебаг-логи в \Classes\Unity\WWWConnection.mm

ipod_unity_crash.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение Kea 16 дек 2016, 18:40

Привет,

получилось победить баг? Если да - то как? У меня такая же проблема, тоже на iPod 5 так же сыпется. ios 8.

Я почитал на форумах - советуют отключить оптимизацию в XCode. Попробуй, отпишись если помогло - у меня такого девайса нет, нет возможности проверить.
Kea
UNIт
 
Сообщения: 71
Зарегистрирован: 21 июл 2012, 09:49

Re: iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение Nolex 16 дек 2016, 18:56

Kea писал(а):Привет,

получилось победить баг? Если да - то как? У меня такая же проблема, тоже на iPod 5 так же сыпется. ios 8.

Я почитал на форумах - советуют отключить оптимизацию в XCode. Попробуй, отпишись если помогло - у меня такого девайса нет, нет возможности проверить.

Не получилось. Проблема в Юнити и никакие настройки не помогут.

Обещают на днях патч выложить: https://forum.unity3d.com/threads/ios-g ... st-2888456

UPDATE: О, только что патч Unity 5.4.3p4 выпустили: https://unity3d.com/ru/unity/qa/patch-releases
(852363) - iOS: Fixed crash(es) in WWWConnection.

Еще не пробовал, но должно помочь. :)
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: iOS-игра падает при WWW-запросах с выкл. WI-FI

Сообщение Kea 17 дек 2016, 15:20

Отпишись пожалуйста как попробуешь - мне не на чем проверить.
Kea
UNIт
 
Сообщения: 71
Зарегистрирован: 21 июл 2012, 09:49


Вернуться в iPhone & Android

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5