ios - 由于加载时崩溃,Apple 拒绝了我的应用程序,我无法重现它。我应该怎么办?

标签 ios objective-c appstore-approval

我的应用程序因启动时崩溃而被拒绝。但是试图通过 itunes 和 testflight 安装应用程序在设备上运行它,我还在我的应用程序中实现了 crashlytics,但我仍然找不到崩溃的根源。我该怎么办?

We found your app crashed on launch so we were unable to review it.

Please revise your app and test it on a device to ensure it will launch without crashing, and that it runs as expected, before resubmitting.

Please see the attached crash logs.

For discrete code-level questions, you may wish to consult with Apple Developer Technical Support. If you have crash logs, symbolicate the crash logs before contacting Apple Developer Technical Support.

If you have difficulty reproducing this issue, please try testing the workflow as described in Testing Workflow with Xcode's Archive feature.

编辑: 我试图用符号表示崩溃日志,我看到它在线程 0 索引 0 上崩溃,这是 getAllContacts 函数。我不确定是什么问题。这是代码:

- (NSMutableArray *)getAllContacts{
    ABAddressBookRef addressBook = ABAddressBookCreate( );
    CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
    CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );
    NSMutableArray *contact = [[NSMutableArray alloc] init];

    for ( int i = 0; i < nPeople; i++ )
    {
        ABRecordRef ref = CFArrayGetValueAtIndex( allPeople, i );
        NSString *firstName = CFBridgingRelease(ABRecordCopyValue(ref, kABPersonFirstNameProperty));
        NSString *lastName = CFBridgingRelease(ABRecordCopyValue(ref, kABPersonLastNameProperty));

        if(lastName == nil && firstName != nil){
            [contact addObject:[NSString stringWithFormat:@"%@", firstName]];
        }
        else if(lastName != nil && firstName == nil){
            [contact addObject:[NSString stringWithFormat:@"%@", lastName]];
        }
        else{
            [contact addObject:[NSString stringWithFormat:@"%@ %@", firstName, lastName]];
        }
    }
    CFRelease(addressBook);
    CFRelease(allPeople);
    NSLog(@"All Contacts: %@", contact);
    return contact;
}

这是符号化后的崩溃日志:

{"bundleID":"com.axon.undotext","app_name":"Undo Text","bug_type":"109","name":"Undo Text","os_version":"iPhone OS 7.1.1 (11D201)","version":"1.5 (1.0)"}
Incident Identifier: CDEE9887-DE46-4C7B-93D9-6F5B64C30448
CrashReporter Key:   814350e202fe6bd49117983388396d3d1b870da1
Hardware Model:      xxx
Process:             Undo Text [3268]
Path:                /var/mobile/Applications/1F7938ED-7911-4838-8F79-26039EF3E386/Undo Text.app/Undo Text
Identifier:          com.axon.undotext
Version:             1.5 (1.0)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2014-06-12 13:43:03.567 -0700
OS Version:          iOS 7.1.1 (11D201)
Report Version:      104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000000000defe
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   CoreFoundation                  0x2eb0b3c5 CFRelease + 1137
1   Undo Text                       0x00035897 -[ContactsManager getAllContacts] (ContactsManager.m:58)
2   Undo Text                       0x00028d59 -[ViewController setupView] (ViewController.m:123)
3   Undo Text                       0x00028901 -[ViewController viewDidLoad] (ViewController.m:65)
4   UIKit                           0x3140ea4f -[UIViewController loadViewIfRequired] + 515
5   UIKit                           0x3140e80d -[UIViewController view] + 21
6   UIKit                           0x31485c39 -[UIClientRotationContext initWithClient:toOrientation:duration:andWindow:] + 385
7   UIKit                           0x3148459d -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 1197
8   UIKit                           0x314840e3 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 43
9   UIKit                           0x3148406b -[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 91
10  UIKit                           0x31484003 -[UIWindow _setRotatableViewOrientation:duration:force:] + 39
11  UIKit                           0x3147c67d __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke + 105
12  UIKit                           0x31410695 -[UIWindow _updateToInterfaceOrientation:duration:force:] + 381
13  UIKit                           0x31483d55 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 693
14  UIKit                           0x31483825 -[UIViewController _tryBecomeRootViewControllerInWindow:] + 157
15  UIKit                           0x31415611 -[UIWindow addRootViewControllerViewIfPossible] + 457
16  UIKit                           0x31412dd5 -[UIWindow _setHidden:forced:] + 301
17  UIKit                           0x3147ca4d -[UIWindow makeKeyAndVisible] + 57
18  UIKit                           0x314796e1 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1817
19  UIKit                           0x31473cc5 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 717
20  UIKit                           0x3140fc93 -[UIApplication handleEvent:withNewEvent:] + 3547
21  UIKit                           0x3140edf5 -[UIApplication sendEvent:] + 69
22  UIKit                           0x31473401 _UIApplicationHandleEvent + 613
23  GraphicsServices                0x33a46b53 _PurpleEventCallback + 607
24  GraphicsServices                0x33a4673b PurpleEventCallback + 31
25  CoreFoundation                  0x2eba5845 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 33
26  CoreFoundation                  0x2eba57df __CFRunLoopDoSource1 + 343
27  CoreFoundation                  0x2eba3fab __CFRunLoopRun + 1403
28  CoreFoundation                  0x2eb0e765 CFRunLoopRunSpecific + 521
29  CoreFoundation                  0x2eb0e547 CFRunLoopRunInMode + 103
30  UIKit                           0x31472627 -[UIApplication _run] + 759
31  UIKit                           0x3146d88d UIApplicationMain + 1133
32  Undo Text                       0x0004deff main (main.m:16)
33  Undo Text                       0x00027764 start + 36

Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x39d52804 kevent64 + 24
1   libdispatch.dylib               0x39ca1051 _dispatch_mgr_invoke + 229
2   libdispatch.dylib               0x39c9b2df _dispatch_mgr_thread + 35

Thread 2:
0   libsystem_kernel.dylib          0x39d65c70 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x39dcac1f _pthread_wqthread + 307
2   libsystem_pthread.dylib         0x39dcaad8 start_wqthread + 4

Thread 3:
0   libsystem_kernel.dylib          0x39d65c70 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x39dcac1f _pthread_wqthread + 307
2   libsystem_pthread.dylib         0x39dcaad8 start_wqthread + 4

Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x39f720f8      r2: 0x00000003      r3: 0x00000002
    r4: 0x00000000    r5: 0x16e85070      r6: 0x00000000      r7: 0x00177300
    r8: 0x00000144    r9: 0x3ba52e30     r10: 0x16e69890     r11: 0x31a3841a
    ip: 0x2eb0af55    sp: 0x001772c0      lr: 0x0003589b      pc: 0x2eb0b3c4
  cpsr: 0x60000030

最佳答案

来自 CFRelease 文档:

If cf is NULL, this will cause a runtime error and your application will crash.

您需要检查 addressBook 和 allPeople 以确保它们不会返回为 NULL。 Apple 可能在地址簿为空的设备上测试您的应用程序,该地址簿返回 NULL,然后被传递给 CFRelease,导致您的应用程序崩溃。

关于ios - 由于加载时崩溃,Apple 拒绝了我的应用程序,我无法重现它。我应该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330641/

相关文章:

ios - 在 iOS 中创建 Sqlite 数据库

ios - 有什么方法可以用 NSLog 进行彩色打印吗?

javascript - 移动Webkit和Hammer JS上的多个元素响应触摸事件

ios - Swift 3.1 : String. Encoding(rawValue:) 在 iOS 应用程序中运行不正确

ios - 缓存或核心数据是否具有半永久性的图像和视频持久性?

app-store - App Store提交的最低应用程序版本为0.9.0?

ios - 获取当前登录用户的 Sharepoint 用户详细信息? (SOAP API)

objective-c - 更改托管对象属性不会触发 NSFetchedResultsController 更新 TableView

ios - 将 iOS 应用程序提交到 App Store 进行审核而不将服务器更新推送到生产环境

ios - 来自同一开发者的类似 iOS 应用