我认为该应用在最小化或关闭时会崩溃。
有人可以帮助了解日志。 是否可以从崩溃日志中找出是否是这种情况? 是什么导致了崩溃?
该应用程序名为Flow,这是崩溃日志:
Exception Type: 00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread: 0
Application Specific Information:
flow failed to exit in time
Elapsed total CPU time (seconds): 6.990 (user 6.990, system 0.000), 50% CPU
Elapsed application CPU time (seconds): 0.000, 0% CPU
Thread 0:
0 libsystem_kernel.dylib 0x3aeb7fa8 __psynch_mutexwait + 24
1 libsystem_pthread.dylib 0x3af1ef0a _pthread_mutex_lock + 302
2 CoreData 0x301fdacc -[_PFLock lock] + 20
3 CoreData 0x3020eba0 -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 776
4 CoreData 0x3020d7e2 -[NSManagedObjectContext executeFetchRequest:error:] + 610
5 Flow 0x000bebe8 +[CDTSetAchievement SetAchievementWithAchievementObj:] (CDTSetAchievement.m:27)
6 Flow 0x00182f88 -[HomeVC saveAchievementToCoreData:] (HomeVC.m:2290)
7 Foundation 0x30decd68 -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:] + 740
8 Foundation 0x30df0738 -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:] + 132
9 Flow 0x0018277c -[HomeVC stepEditDone:withAchievementObj:withIsNew:] (HomeVC.m:2253)
10 Flow 0x00104f0a __21-[StepEditVC goDone:]_block_invoke (StepEditVC.m:178)
11 Flow 0x00228fec __53-[PFTask thenCallBackOnMainThreadWithBoolValueAsync:]_block_invoke (PFTask.m:341)
12 Flow 0x00228dd6 __40-[PFTask thenCallBackOnMainThreadAsync:]_block_invoke_2 (PFTask.m:325)
13 libdispatch.dylib 0x3addcd18 _dispatch_call_block_and_release + 8
14 libdispatch.dylib 0x3addcd04 _dispatch_client_callout + 20
15 libdispatch.dylib 0x3ade3788 _dispatch_main_queue_callback_4CF$VARIANT$mp + 264
16 CoreFoundation 0x30483814 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4
17 CoreFoundation 0x304820e8 __CFRunLoopRun + 1296
18 CoreFoundation 0x303ecc22 CFRunLoopRunSpecific + 518
19 CoreFoundation 0x303eca06 CFRunLoopRunInMode + 102
20 GraphicsServices 0x3511327e GSEventRunModal + 134
21 UIKit 0x32c90044 UIApplicationMain + 1132
22 Flow 0x00148e4a main (main.m:23)
23 libdyld.dylib 0x3ae01ab4 start + 0
这是ApplicationDidFinishLaunching
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#if !(APP_STORE_RELEASE)
QTouchposeApplication *touchposeApplication = (QTouchposeApplication *)application;
touchposeApplication.alwaysShowTouches = YES;
#endif
[[UIApplication sharedApplication]setMinimumBackgroundFetchInterval:10.0];
self.arrayProgressIDs =[[NSMutableArray alloc] init];
// First, register a handler for the product
[PFPurchase addObserverForProduct:IAP_UPGRADE block:^(SKPaymentTransaction *transaction) {
// NSLog(@"Description: %@",transaction);
}];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(productPurchased:) name:IAPHelperProductPurchasedNotification object:nil];
[GAI sharedInstance].trackUncaughtExceptions = YES;
// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
[GAI sharedInstance].dispatchInterval = 20;
// Optional: set Logger to VERBOSE for debug information.
[[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];
// Initialize tracker. Replace with your tracking ID.
[[GAI sharedInstance] trackerWithTrackingId:GOOGLE_ANALYTICS];
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
// [tracker set:@"" value:@""];
[tracker send:[[GAIDictionaryBuilder createAppView] build]];
[tracker set:kGAIScreenName value:@"App Launching"];
[tracker send:[[GAIDictionaryBuilder createAppView] build]];
[application registerForRemoteNotificationTypes:
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeSound];
self.arrayImages = [[NSMutableArray alloc] init];
[Parse setApplicationId:APPLICATION_ID clientKey:CLIENT_KEY];
[PFFacebookUtils initializeFacebook];
[PFTwitterUtils initializeWithConsumerKey:@"XXXXXX" consumerSecret:@"XXXXXXXXXXXX"];
// Set default ACLs
PFACL *defaultACL = [PFACL ACL];
[defaultACL setPublicReadAccess:YES];
[PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
self.homeVC= [[HomeVC alloc] init];
UINavigationController *nav= [[UINavigationController alloc] initWithRootViewController:self.homeVC];
nav.navigationBarHidden= YES;
self.leftVC= [[LeftVC alloc] init];
self.swipeVC= [[ECSlidingViewController alloc] init];
[self.swipeVC setUnderLeftViewController:self.leftVC];
[self.swipeVC setUnderLeftWidthLayout:ECFullWidth];
[self.swipeVC setTopViewController:nav];
if ([USER_DEFAULT boolForKey:IS_LOGIN])
{
[self checkingFlowfromParse];
}
else
{
FlashVC *introVC=[[FlashVC alloc] init];
UINavigationController *nav= [[UINavigationController alloc]initWithRootViewController:introVC];
nav.navigationBarHidden=YES;
[self.window setRootViewController:nav];
}
[self.window makeKeyAndVisible];
return YES;
}