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

时间:2014-06-20 15:23:02

标签: ios objective-c appstore-approval

我的应用程序因发布时崩溃而被拒绝。但是试图通过itunes和testflight安装应用程序在设备上运行它,我也在我的应用程序中实现了崩解,但我仍然无法找到崩溃的来源。我该怎么办?

  

我们发现您的应用在发布时崩溃,因此我们无法对其进行审核。

     

请修改您的应用并在设备上进行测试,以确保它能够实现   在没有崩溃的情况下启动,并且之前它按预期运行   重新提交。

     

请参阅随附的崩溃日志。

     

对于离散的代码级问题,您可能希望咨询Apple   开发人员技术支持如果您有崩溃日志,请表示   在联系Apple Developer技术支持之前崩溃日志。

     

如果您在复制此问题时遇到困难,请尝试测试   使用Xcode的存档测试工作流程中描述的工作流程   特征

修改 我试图象征崩溃日志,我看到它在线程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

2 个答案:

答案 0 :(得分:1)

看起来您的应用在旋转时崩溃了,您确定已经对此进行了正确测试吗? 特别是当设备处于横向与纵向时启动您的应用。

另外一些可能导致奇怪行为的事情是启动一个应用程序,设备旋转但方向已锁定。

在实际设备上测试,而不是模拟器,在极少数情况下你会有不同的行为。

另外,正如其他人所述,学习 symbolicate ,它会为您提供代码崩溃的确切行。

答案 1 :(得分:0)

来自CFRelease docs:

  

如果cf为NULL,这将导致运行时错误和您的应用程序   会崩溃。

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