Szczegóły raportu o awarii:
Exception Type: 00000020
Exception Codes: 0x8badf00d
Highlighted Thread: 3
Application Specific Information:
MyApp[123] has active assertions beyond permitted time:
{(
<SBProcessAssertion: 0x4b52f0> identifier: CoreLocationBackgroundClient process: MyApp[579] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:123 preventSuspend preventIdleSleep
)}
Elapsed total CPU time (seconds): 13.980 (user 13.980, system 0.000), 1% CPU
Elapsed application CPU time (seconds): 0.251, 0% CPU
a wątek 3 to:
Thread 3 name: com.apple.NSURLConnectionLoader
Thread 3:
0 libsystem_kernel.dylib 0x30e67004 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x30e671fa mach_msg + 50
2 CoreFoundation 0x381ea3ec __CFRunLoopServiceMachPort + 120
3 CoreFoundation 0x381e9124 __CFRunLoopRun + 876
4 CoreFoundation 0x3816c49e CFRunLoopRunSpecific + 294
5 CoreFoundation 0x3816c366 CFRunLoopRunInMode + 98
6 Foundation 0x373a7bb2 +[NSURLConnection(Loader) _resourceLoadLoop:] + 302
7 Foundation 0x373a7a7a -[NSThread main] + 66
8 Foundation 0x3743b58a __NSThread__main__ + 1042
9 libsystem_c.dylib 0x333c972e _pthread_start + 314
10 libsystem_c.dylib 0x333c95e8 thread_start + 0
Aplikacja korzysta z GPS. Masz jakiś pomysł, dlaczego ta katastrofa się dzieje?
Odpowiedzi:
1 dla odpowiedzi № 1Wygląda na to, że używasz złego rodzajuprzetwarzanie w tle. 600 sekund to nagroda. Sugeruje to, że „używasz interfejsu API do wykonywania zadań, który daje aplikacjom określony czas (obecnie dziesięć minut) na dokończenie określonych czynności przed ich zawieszeniem.
Jeśli chcesz nadal monitorować lokalizację GPS w tle, musisz użyć określonych interfejsów API Core Location (i ustawić odpowiednią flagę w swoim Info.plist).