我的应用程序因启动时崩溃而被拒绝。但是试图通过 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/