Игра переодически крашится на 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":
- Код: Выделить всё
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.
Заранее спасибо!