我的应用程序因发布时崩溃而被拒绝。但是试图通过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
答案 0 :(得分:1)
看起来您的应用在旋转时崩溃了,您确定已经对此进行了正确测试吗? 特别是当设备处于横向与纵向时启动您的应用。
另外一些可能导致奇怪行为的事情是启动一个应用程序,设备旋转但方向已锁定。
在实际设备上测试,而不是模拟器,在极少数情况下你会有不同的行为。
另外,正如其他人所述,学习 symbolicate ,它会为您提供代码崩溃的确切行。
答案 1 :(得分:0)
来自CFRelease docs:
如果cf为NULL,这将导致运行时错误和您的应用程序 会崩溃。
您需要检查addressBook和allPeople以确保它们不会返回NULL。 Apple可能正在使用空地址簿的设备上测试您的应用程序,该地址簿返回NULL,然后传递给CFRelease,使您的应用程序崩溃。