2014-12-04 47 views
3

我有一个使用Cordova构建的应用程序,它在后台有一些任务。问题是我得到随机崩溃,我无法弄清楚它是什么错误。进程在允许的时间之外有主动断言iOS

我得到一个异常:

Exception Type: 00000020 
Exception Codes: 0x000000008badf00d 
Highlighted Thread: 2 

Application Specific Information: 
<BKNewProcess: 0x1758f950; com.app; pid: 2675; hostpid: -1> has active assertions beyond permitted time: 
{(
    <BKProcessAssertion: 0x17692970> id: 2675-CA057A50-06BF-4BA1-9F0C-7641112B945E name: Called by MyApp, from unknown method process: <BKNewProcess: 0x1758f950; gbi.cro; pid: 2675; hostpid: -1> permittedBackgroundDuration: 180.000000 reason: finishTask owner pid:2675 preventSuspend preventIdleSleep preventSuspendOnSleep , 
    <BKProcessAssertion: 0x17697c30> id: 2675-A03FFC10-1D0A-4BDC-BF64-61358346530E name: Called by MyApp, from unknown method process: <BKNewProcess: 0x1758f950; gbi.cro; pid: 2675; hostpid: -1> permittedBackgroundDuration: 180.000000 reason: finishTask owner pid:2675 preventSuspend preventIdleSleep preventSuspendOnSleep 
)} 

和线程2:

Thread 2 name: com.apple.NSURLConnectionLoader 
Thread 2: 
0 libsystem_kernel.dylib   0x30ae3518 mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x30ae330c mach_msg + 36 
2 CoreFoundation     0x227d1596 __CFRunLoopServiceMachPort + 142 
3 CoreFoundation     0x227cfb5c __CFRunLoopRun + 1012 
4 CoreFoundation     0x2271cb2c CFRunLoopRunSpecific + 472 
5 CoreFoundation     0x2271c93e CFRunLoopRunInMode + 102 
6 CFNetwork      0x222d178a +[NSURLConnection(Loader) _resourceLoadLoop:] + 482 
7 Foundation      0x2351e996 __NSThread__main__ + 1114 
8 libsystem_pthread.dylib   0x30b75e64 _pthread_body + 136 
9 libsystem_pthread.dylib   0x30b75dd6 _pthread_start + 114 
10 libsystem_pthread.dylib   0x30b73b80 thread_start + 4 

我已经整个跟踪,但它是如此之大,所以如果有人需要一些信息,让我知道。

感谢

+0

你是否试图用断点跟踪他们? – gronzzz 2014-12-04 13:35:05

+0

嗨,问题是崩溃是随机的,也许我在10分钟后得到它...... 5小时后...所以我不能用断点调试它。 – Juanjo 2014-12-04 14:27:34

回答

1

这个问题很烦人,这是很难通过断点调试,我建议你尝试一些伎俩,当应用程序在下面的方法辞职活跃,从系统应用于更多的时间:

__block UIBackgroundTaskIdentifier backgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ 

    [[UIApplication sharedApplication] endBackgroundTask:backgroundTaskIdentifier]; 
    backgroundTaskIdentifier = backgroundTaskIdentifier; 
}]; 

另外,看看苹果: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

相关问题