2

我意识到这是一个有点模糊的问题,但我正在寻找一个开始的地方。我有 testflight 实时运行,并注意到以下崩溃:

0 Powercents 0x000781de testflight_backtrace + 142
1 Powercents 0x00078d6c TFSignalHandler + 212
2 libsystem_c.dylib 0x319937ec _sigtramp + 48
3 libsystem_c.dylib 0x3198920e pthread_kill + 54
4 libsystem_c.dylib 0x3198229e abort + 94
5 AppSupport 0x35f70c2e abortAfterPassingIntegrityCheck + 38
6 AppSupport 0x35f70ee6 runIntegrityCheckAndAbort + 526
7 AppSupport 0x35f7102c checkResultWithStatement + 120
8 AppSupport 0x35f72a12 _connectAndCheckVersion + 1058
9 AppSupport 0x35f72ab6 CPSqliteDatabaseConnectionForWriting + 42
10 AppSupport 0x35f72b8c CPSqliteDatabaseRegisterFunction + 20
11 AddressBook 0x345523f6 ABCDBContextCreateWithPathAndAddressBook + 214
12 AddressBook 0x34546428 ABCCreateAddressBookWithDatabaseDirectoryAndForceInProcessMigrationInProcessLinkingAndResetSortKeys + 232
13 AddressBook 0x34554cd6 ABAddressBookCreate + 14
14 TextInput 0x377981c4 _ZN2KB45fill_with_matchable_strings_from_address_bookERNS_7HashmapINS_6StringEbEE + 16
15 TextInput 0x3779edf4 _ZN2KB21DynamicDictionaryImpl28background_load_address_bookERKNS_16StaticDictionaryE + 200
16 TextInput 0x3779f72e _ZN2KBL14BackgroundLoadEPv + 278
17 libsystem_c.dylib 0x3194a734 _pthread_start + 320
18 libsystem_c.dylib 0x3194a5ef thread_start + 7

从我在测试飞行中可以看出,崩溃似乎是在打开应用程序时发生的。

这是 applicationDidFinishLaunching 代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    NSDictionary *plistData = [[NSBundle mainBundle] infoDictionary];
    MB_LOG_LEVEL = [[plistData valueForKey:@"MBLogLevel"] intValue];

    NSArray *versionParts = [[plistData objectForKey:@"CFBundleVersion"] componentsSeparatedByString:@" "];

    self.versionString = [NSString stringWithFormat:NSLocalizedString(@"version.string", nil),
                          [plistData objectForKey:@"CFBundleShortVersionString"], 
                          // accounts for $Rev: 407 $
                          [versionParts objectAtIndex: ([versionParts count] > 1 ? 1 : 0)],
                          [plistData objectForKey:@"MBBuildDate"]
                          ];

    [self bootstrap];

    // TestFlight and Google Analytics
    [Tracking startup];

    // Add the tab bar controller's current view as a subview of the window
    // Note: Do it this way, since the UIWindow class has no rootViewController
    // property in iOS 3.x.
    [window_ addSubview:self.tabBarController.view];
    [window_ makeKeyWindow];

    // set up APNS with Urban Airship
    [self initAirship:launchOptions];

    // If it is the first time running the app, delete all local notifications
    [self cleanLocalNotifications];

    // Handle launching from a notification
    UILocalNotification *localNotif =
    [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        NSLog(@"Recieved Notification %@",localNotif);
    }    

    return YES;
}

这是引导方法:

- (void)bootstrap
{    
    // simple check for a bootstrapped db
    Settings *settings = (Settings*)[DataManager objectForEntity:NSStringFromClass([Settings class]) 
                                            sortDescriptorsOrNil:nil
                                                  predicateOrNil:nil];
    if (!settings) {
        settings = (Settings*)[DataManager createManagedInstance:NSStringFromClass([Settings class])];
        [settings setEnergyMobileFirstRun:[NSNumber numberWithBool:YES]];
        [settings setFirstRun:[NSNumber numberWithBool:YES]];
        [settings setShowWelcomeAlertView:[NSNumber numberWithBool:YES]];
        [settings setOnPeakAlertNotificationTime:[NSNumber numberWithInt:0]];
        [settings setMidPeakAlertNotificationTime:[NSNumber numberWithInt:0]];
        [settings setOffPeakAlertNotificationTime:[NSNumber numberWithInt:0]];
        [settings setOnPeakAlertNotificationsActive:[NSNumber numberWithBool:NO]];
        [settings setMidPeakAlertNotificationsActive:[NSNumber numberWithBool:NO]];
        [settings setOffPeakAlertNotificationsActive:[NSNumber numberWithBool:NO]];
        [DataManager saveManagedInstances];
    }
    if ([settings.firstRun boolValue])
    {
        // Clear the Database
        [DataManager deleteAllObjectsForEntity:@"Appliance"];
        [DataManager deleteAllObjectsForEntity:@"Answer"];
        [DataManager deleteAllObjectsForEntity:@"AnsweredQuestion"];
        [DataManager deleteAllObjectsForEntity:@"Question"];
        [self loadSavingsTipData];
        [self createChecklistTips];
        [self initializeTimeOfUseBehaviour];
        [settings setFirstRun:[NSNumber numberWithBool:NO]];
        [DataManager saveManagedInstances];
    }
}

编辑以添加更多信息:

此堆栈跟踪来自 TestFlight live。崩溃来自从应用商店购买的应用。

这是整个堆栈跟踪:

    PRIMARY THREAD THREAD 10

0 Powercents 0x000781de testflight_backtrace + 142
1 Powercents 0x00078d6c TFSignalHandler + 212
2 libsystem_c.dylib 0x319937ec _sigtramp + 48
3 libsystem_c.dylib 0x3198920e pthread_kill + 54
4 libsystem_c.dylib 0x3198229e abort + 94
5 AppSupport 0x35f70c2e abortAfterPassingIntegrityCheck + 38
6 AppSupport 0x35f70ee6 runIntegrityCheckAndAbort + 526
7 AppSupport 0x35f7102c checkResultWithStatement + 120
8 AppSupport 0x35f72a12 _connectAndCheckVersion + 1058
9 AppSupport 0x35f72ab6 CPSqliteDatabaseConnectionForWriting + 42
10 AppSupport 0x35f72b8c CPSqliteDatabaseRegisterFunction + 20
11 AddressBook 0x345523f6 ABCDBContextCreateWithPathAndAddressBook + 214
12 AddressBook 0x34546428 ABCCreateAddressBookWithDatabaseDirectoryAndForceInProcessMigrationInProcessLinkingAndResetSortKeys + 232
13 AddressBook 0x34554cd6 ABAddressBookCreate + 14
14 TextInput 0x377981c4 _ZN2KB45fill_with_matchable_strings_from_address_bookERNS_7HashmapINS_6StringEbEE + 16
15 TextInput 0x3779edf4 _ZN2KB21DynamicDictionaryImpl28background_load_address_bookERKNS_16StaticDictionaryE + 200
16 TextInput 0x3779f72e _ZN2KBL14BackgroundLoadEPv + 278
17 libsystem_c.dylib 0x3194a734 _pthread_start + 320
18 libsystem_c.dylib 0x3194a5ef thread_start + 7
Hide Other Threads

THREAD 1 COM.APPLE.NSURLCONNECTIONLOADER

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 Foundation 0x37b67bb8 +[NSURLConnection(Loader) _resourceLoadLoop:] + 308
4 Foundation 0x37b67a80 -[NSThread main] + 72
5 Foundation 0x37bfb590 __NSThread__main__ + 1048
6 libsystem_c.dylib 0x3194a734 _pthread_start + 320
7 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 2 COM.APPLE.CFSOCKET.PRIVATE

0 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 3 THREAD 11

Empty Stacktrace

THREAD 4 WEBTHREAD

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 WebCore 0x32fd20f6 _ZL12RunWebThreadPv + 402
4 libsystem_c.dylib 0x3194a734 _pthread_start + 320
5 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 5 THREAD 8

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3738f44a CFRunLoopRun + 98
3 Powercents 0x000a9f0a +[UA_ASIHTTPRequest runRequests] + 134
4 Foundation 0x37b67a80 -[NSThread main] + 72
5 Foundation 0x37bfb590 __NSThread__main__ + 1048
6 libsystem_c.dylib 0x3194a734 _pthread_start + 320
7 libsystem_c.dylib 0x3194a5ef thread_start + 7
THREAD 6 THREAD 12

Empty Stacktrace

THREAD 7 THREAD 0

0 CoreFoundation 0x3738f0f0 __CFRunLoopRun + 824
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 GraphicsServices 0x3221f438 GSEventRunModal + 136
4 UIKit 0x33a96e7c UIApplicationMain + 1080
5 Powercents 0x0004cfb2 main + 66
6 Powercents 0x0004cf6b start + 39
THREAD 8 THREAD 1

0 0xffffffff + 0
THREAD 9 THREAD 2

Empty Stacktrace

THREAD 10 THREAD 3

Empty Stacktrace

THREAD 11 THREAD 6

Empty Stacktrace

THREAD 12 THREAD 7

0 CoreFoundation 0x3738f12a __CFRunLoopRun + 882
1 CoreFoundation 0x373124a4 CFRunLoopRunSpecific + 300
2 CoreFoundation 0x3731236c CFRunLoopRunInMode + 104
3 Foundation 0x37b5bb74 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 256
4 Foundation 0x37b75522 -[NSRunLoop(NSRunLoop) run] + 78
5 Powercents 0x0008d25c -[TFNetworkManager networkRunLoopThreadEntry] + 72
6 Foundation 0x37b67a80 -[NSThread main] + 72
7 Foundation 0x37bfb590 __NSThread__main__ + 1048
8 libsystem_c.dylib 0x3194a734 _pthread_start + 320
9 libsystem_c.dylib 0x3194a5ef thread_start + 7
4

4 回答 4

4

I am currently seeing an identical crash in Production on iOS 5.1 devices only. Although I'm not sure what is triggering the crash, I think it's safe to say this was an Apple bug that has been fixed in iOS 6.

于 2013-06-13T19:52:01.903 回答
1

在我看来,您的应用程序适用于 iOS 通讯簿。如果您可以调试您的应用程序,请尝试通过更改通讯簿 API 调用在连接时模拟此错误。

于 2012-05-01T14:12:23.433 回答
1

它看起来与地址簿相关 - 请发布整个崩溃报告。

看起来好像正在初始化 AddressBook API,并且在打开支持的 sqlLite 数据库时发生错误。也许 connectAndCheckVersion 以某种方式失败。

TestFlight 之所以存在,是因为它安装了一个包罗万象的信号处理程序以向 TestFlight Live 报告应用程序崩溃。

于 2012-05-01T14:14:40.063 回答
0

我不完全确定,但在我看来,这个答案与我遇到的问题相同:

应用程序“未能及时恢复”并挂起

于 2012-05-05T17:51:39.067 回答