奇怪的事情,应用在iPhone 4S和iPad上运行良好,但在iPhone 4上崩溃。

3
我已经将我的应用提交到App Store进行审核,却被拒绝了,原因如下所示:
我们发现你的应用在运行iOS 5.1.1的iPhone 4上崩溃,这不符合App Store审核指南。你的应用程序无论在Wi-Fi还是蜂窝网络上启动时都会崩溃。
附上的日志如下:
Incident Identifier: 65E8D233-2F02-4545-85C9-74CA4A346051
CrashReporter Key:   5f5257827e93649c799893055b12d3d61c937314
Hardware Model:      iPhone3,1
Process:         iman360 [42785]
Path:            /var/mobile/Applications/EA2B491A-194D-4669-ADF7-721593D2B14F/iman360.app/iman360
Identifier:      iman360
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]
Date/Time:       2012-08-09 13:41:37.107 -0700
OS Version:      iPhone OS 5.1.1 (9B206)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x2fdfe6e0
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   ???                             0x2fdfe6e0 0 + 803202784
1   iman360                         0x00036ba2 -[ComicCatController     refreshWithActionHandlerExeced:] (ComicCatController.m:216)
2   iman360                         0x00036b0c -[ComicCatController refresh] (ComicCatController.m:207)
3   iman360                         0x0002e682 -[TabComicCityViewController showSegTabView:] (TabComicCityViewController.m:312)
4   iman360                         0x0002dcbc -[TabComicCityViewController segmentedViewValueChanged:] (TabComicCityViewController.m:96)
5   CoreFoundation                  0x372ee3f6 -[NSObject performSelector:withObject:withObject:] + 46
6   UIKit                           0x31083e00 -[UIApplication sendAction:to:from:forEvent:] + 56
7   UIKit                           0x31083dbc -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 24
8   UIKit                           0x31083d9a -[UIControl sendAction:to:forEvent:] + 38
9   UIKit                           0x31083b0a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 486
10  iman360                         0x00019598 -[Iman360SegmentedView moveThumbToIndex:animate:] (Iman360SegmentedView.m:360)
11  iman360                         0x00017ab4 -[Iman360SegmentedView willMoveToSuperview:] (Iman360SegmentedView.m:117)
12  UIKit                           0x3106b502 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 390
13  UIKit                           0x3106b370 -[UIView(Hierarchy) addSubview:] + 24
14  iman360                         0x0002d996 -[TabComicCityViewController viewDidLoad] (TabComicCityViewController.m:49)
15  UIKit                           0x310a1c84 -[UIViewController view] + 160
16  iman360                         0x0001c86a +[ViewControllerManager initGlobalContentBgImgForViewController:] (ViewControllerManager.m:43)
17  iman360                         0x0000422c -[Iman360ViewControllerBase init] (Iman360ViewControllerBase.m:25)
18  iman360                         0x0002b8ce -[IndexTabViewControllerBase initWithIndexViewController:] (IndexTabViewControllerBase.m:19)
19  iman360                         0x00004706 -[IndexViewController viewDidLoad] (IndexViewController.m:58)
20  UIKit                           0x310a1c84 -[UIViewController view] + 160
21  UIKit                           0x310a045a -[UIWindow addRootViewControllerViewIfPossible] + 38
22  UIKit                           0x31224774 -[UIWindow setRootViewController:] + 332
23  iman360                         0x0001c7da +[ViewControllerManager switchToViewController:] (ViewControllerManager.m:32)
24  iman360                         0x0001c60a -[LoadingViewController onBackgroundJobFinishedWithUpdateInfo:] (LoadingViewController.m:165)
25  CoreFoundation                  0x372f31f4 -[NSObject performSelector:withObject:] +   36
26  Foundation                      0x37c0e740 __NSThreadPerformPerform + 344
27  CoreFoundation                  0x37368acc __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 8
28  CoreFoundation                  0x37368298 __CFRunLoopDoSources0 + 208
29  CoreFoundation                  0x3736703e __CFRunLoopRun + 646
30  CoreFoundation                  0x372ea49e CFRunLoopRunSpecific + 294
31  CoreFoundation                  0x372ea366 CFRunLoopRunInMode + 98
32  GraphicsServices                0x33aa9432 GSEventRunModal + 130
33  UIKit                           0x31096cce UIApplicationMain + 1074
34  iman360                         0x00004d5c main (main.m:23)
35  iman360                         0x00002e60 0x1000 + 7776

Thread 0 crashed with ARM Thread State:
r0: 0x2fdfe6bc    r1: 0x2fdfe6bc      r2: 0x2fdfe6e0      r3: 0x00000000
r4: 0x0015d980    r5: 0x00000001      r6: 0x00059384      r7: 0x2fdfe6e0
r8: 0x00059388    r9: 0x0000000e     r10: 0x00153da0     r11: 0x314490ab
ip: 0x000249a1    sp: 0x2fdfe6e0      lr: 0x000249c1      pc: 0x2fdfe6e0
cpsr: 0x200f0010

但是我已经在我的iPhone 4s和iPad上进行了测试,它们可以正常工作。起初我认为可能是我正在取消引用空指针,但是KERN_PROTECTION_FAILURE at 0x2fdfe6e0表明不是这样的情况。你有什么想法吗?


1
你在 iPhone 4 模拟器上试过了吗? - Yusuf X
1
好的观点。你的4S上运行的是iOS 5.1.1吗?如果可以,理论上它应该也能在iPhone 4上运行。有一种可能性是ARM芯片的差异可能会引起或至少揭示问题。为了解密问题,这可能会有所帮助:https://dev59.com/43M_5IYBdhLWcg3wQQld#4954949 - Yusuf X
感谢您的建议,我已经找出了问题所在:“0 ??? 0x2fdfe6e0 0 + 803202784”是一个空指针解引用异常。然后我按照帖子上的建议尝试处理,但却没有得到任何有用的信息。 - David
这可能是什么问题呢?我已经用我的iPad、iPhone 4和iPod Touch进行了调试,一切都正常,但是App Store却拒绝了我的应用,称在iOS 5.1.1上的iPhone 4上崩溃了。我是在分发方面做错了什么还是其他原因? - David
1
你能发布更多的崩溃日志吗?特别是崩溃线程的堆栈帧和寄存器。从评论中可以看出,似乎应用程序尝试在有问题的地址执行代码而不是取消引用对象成员。 - Walt Sellers
显示剩余5条评论
1个回答

0
我进行了静态代码分析并得到了一些结果。这很愚蠢,我忘记在我的类初始化器中调用[super init]方法。但是请问有人能帮忙分析一下这是否是问题所在吗?不确定这是否是问题所在,因为应用程序仍在App Store审核中。
幸运的是,我的应用程序这次通过了。这是因为我没有为自定义的类对象初始化调用[super init]。我非常好奇为什么有时候它可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接