TESTPRO_TEST[830] has active assertions beyond permitted time:
{(
<BKProcessAssertion: 0x1fd48670> identifier: UIKitBackgroundCompletionTask process: TESTPRO_TEST[830] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:830 preventSuspend preventIdleSleep ,
<BKProcessAssertion: 0x2083f190> identifier: UIKitBackgroundCompletionTask process: TESTPRO_TEST[830] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:830 preventSuspend preventIdleSleep
)}
<Warning>: Forcing crash report of DSC_TEST[830]...
<Warning>: Finished crash reporting.
[830] has active assertions beyond permitted time:
{(
<BKProcessAssertion: 0x1fd48670> identifier: UIKitBackgroundCompletionTask process: [830] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:830 preventSuspend preventIdleSleep
)}
<Warning>: Forcing crash report of [830]...
<Error>: Multiple simulate crash requests for pid 830
<Warning>: Finished crash reporting.
<Warning>: pid_suspend failed for [830]: Unknown error: -1, Unknown error: -1
com.apple.launchd[1] (UIKitApplication:com.testPro.Test[0x4aff][830]) <Notice>: (UIKitApplication:com.testPro.Test[0x4aff]) Exited: Killed: 9
<Warning>: Application 'UIKitApplication:com.testPro.Test[0x4aff]' exited abnormally with signal 9: Killed: 9
�<Debug>: launchd[869] Builtin profile: container (sandbox)
<Debug>: launchd[869] Container: /private/var/mobile/Applications/3CF1EEC9-B6EF-45EA-999D-EBB9C02106EE (sandbox)
<Error>: Not saving crash log because we have reached the limit for logs to store on disk. Sync or otherwise clear logs from /var/mobile/Library/Logs/CrashReporter to save new logs.
<Error>: Could not save crash report to disk!
当应用程序进入后台时,我添加了代码
- (void) applicationDidEnterBackground:(UIApplication *) application
{
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
UIBackgroundTaskIdentifier bgTask = 0;
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler: ^{
[app endBackgroundTask:bgTask];
}];
}
当应用程序进入后台时发生崩溃。任何人都可以帮我修复此崩溃吗?
答案 0 :(得分:2)
原因很明显 - 它指向日志 - 您的时间已过期。
Applications running background tasks have a finite amount of time in which to run them. (You can find out how much time is available using the backgroundTimeRemaining property.) If you do not call endBackgroundTask: for each task before time expires, the system kills the application.
我认为您不应该在applicationDidEnterBackground:
中调用此方法尝试将其移至适当的位置(您开始工作的地方)。您可以使用它来包装可能在bkg中工作的长时间播放进程。不要严厉地判断我的答案,这只是我的猜测,可能会成为现实。
P.S。这是What are beginBackgroundTaskWithExpirationHandler and endBackgroundTask methods
的好解释