AppStore 构建在 iPhone 3g 和 iPod Touch 上启动时崩溃
在看了stackoverflow和许多其他论坛后,决定问这个问题.最接近讨论我遇到的确切问题的是 这个答案
After looking at stackoverflow and many other forums, decided to ask this question. The closest that came to discussing the exact problem I have is this answer
我在 AppStore 中有一个基于相当稳定的代码库构建的应用程序,并且已经使用了两年.但是现在,在向应用程序提交最近的更新后,它在 iPhone 3G(4.2.1 版)上崩溃了.当我运行调试版本时它不会在设备上崩溃
I have an App in the AppStore thats been built on a fairly stable codebase and has been in use for the past two years. But now, after submitting a recent update to the app, its crashing on iPhone 3G (version 4.2.1). It doesn't crash on the device when I run a debug build
以下是我根据其他帖子验证的要点:
Here are the points I have verified based on other posts:
- 所有构建配置(调试/分发/AppStore),已设置为最低版本为 3.0,基础 SDK 为最新
- 有效架构值设置为 armv6 armv7
- 我没有收到吃坏食物"的异常(异常代码:0x8badf00d)
- 它适用于我可以测试的大多数较新的 iOS 设备
- 未选中仅构建活动架构
- 应用程序在启动后 5 秒内崩溃,因此不是看门狗干扰启动
- 二进制文件是使用 XCode 3.2.6 构建的
- 符号崩溃日志中没有太多我能够理解的信息
这是崩溃日志
Date/Time: 2011-07-01 11:16:06.728 -0400
OS Version: iPhone OS 4.2.1 (8C148)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0048af00
Crashed Thread: 0
Thread 0 Crashed:
0 ??? 0x0048af00 0 + 4763392
Thread 1:
0 libSystem.B.dylib 0x35d8f974 kevent + 24
1 libSystem.B.dylib 0x35e5e2fc _dispatch_mgr_invoke + 88
2 libSystem.B.dylib 0x35e5dd68 _dispatch_queue_invoke + 96
3 libSystem.B.dylib 0x35e5d788 _dispatch_worker_thread2 + 120
4 libSystem.B.dylib 0x35de6970 _pthread_wqthread + 392
5 libSystem.B.dylib 0x35ddd2fc start_wqthread + 0
Thread 2:
0 libSystem.B.dylib 0x35de454c __semwait_signal + 24
1 libSystem.B.dylib 0x35d90f70 _pthread_cond_wait + 1140
2 libSystem.B.dylib 0x35d90910 pthread_cond_wait + 48
3 Foundation 0x3517ed5e -[NSCondition wait] + 170
4 Foundation 0x35169106 -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:] + 764
5 Foundation 0x35168d5e -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:] + 98
6 MyCrashingApp 0x00014ab0 -[URLDownload connectionDidFinishLoading:] (URLDownload.m:79)
7 Foundation 0x35184232 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 62
8 Foundation 0x351841b4 _NSURLConnectionDidFinishLoading + 72
9 CFNetwork 0x302957e0 URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*) + 212
10 CFNetwork 0x30284b00 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 132
11 CFNetwork 0x30284d7c URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 768
12 CFNetwork 0x3028497c URLConnectionClient::processEvents() + 92
13 CFNetwork 0x30284844 MultiplexerSource::perform() + 184
14 CFNetwork 0x30284780 MultiplexerSource::_perform(void*) + 4
15 CoreFoundation 0x375518ca __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 8
16 CoreFoundation 0x37521ec6 __CFRunLoopDoSources0 + 378
17 CoreFoundation 0x375216f2 __CFRunLoopRun + 258
18 CoreFoundation 0x37521504 CFRunLoopRunSpecific + 220
19 CoreFoundation 0x37521412 CFRunLoopRunInMode + 54
20 Foundation 0x35156238 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 200
21 Foundation 0x351d52ea -[NSRunLoop(NSRunLoop) runUntilDate:] + 62
22 MyCrashingApp 0x000148a4 -[URLDownload startDownload:] (URLDownload.m:57)
23 CoreFoundation 0x375466fc __invoking___ + 60
24 CoreFoundation 0x375465d6 -[NSInvocation invoke] + 110
25 Foundation 0x351cd8fe -[NSInvocationOperation main] + 78
26 Foundation 0x3516054a -[__NSOperationInternal start] + 658
27 Foundation 0x351602a8 -[NSOperation start] + 16
28 Foundation 0x35174b8c ____startOperations_block_invoke_2 + 40
29 libSystem.B.dylib 0x35e5d268 _dispatch_call_block_and_release + 12
30 libSystem.B.dylib 0x35e5d788 _dispatch_worker_thread2 + 120
31 libSystem.B.dylib 0x35de6970 _pthread_wqthread + 392
32 libSystem.B.dylib 0x35ddd2fc start_wqthread + 0
Thread 3:
0 libSystem.B.dylib 0x35d5b40c semaphore_wait_signal_trap + 8
1 libSystem.B.dylib 0x35d91448 semaphore_wait_signal + 4
2 libSystem.B.dylib 0x35d5d4ec pthread_mutex_lock + 376
3 WebCore 0x330777c4 _WebTryThreadLock(bool) + 44
4 WebCore 0x33077e5c WebRunLoopLock(__CFRunLoopObserver*, unsigned long, void*) + 28
5 CoreFoundation 0x3752a808 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
6 CoreFoundation 0x3752a636 __CFRunLoopDoObservers + 494
7 CoreFoundation 0x375219a2 __CFRunLoopRun + 946
8 CoreFoundation 0x37521504 CFRunLoopRunSpecific + 220
9 CoreFoundation 0x37521412 CFRunLoopRunInMode + 54
10 WebCore 0x3318bd14 RunWebThread(void*) + 524
11 libSystem.B.dylib 0x35de5b44 _pthread_start + 364
12 libSystem.B.dylib 0x35dd77a4 thread_start + 0
Thread 4:
0 libSystem.B.dylib 0x35de72fc __workq_kernreturn + 8
1 libSystem.B.dylib 0x35de6b50 _pthread_wqthread + 872
2 libSystem.B.dylib 0x35ddd2fc start_wqthread + 0
Thread 5:
0 libSystem.B.dylib 0x35d5b3b0 mach_msg_trap + 20
1 libSystem.B.dylib 0x35d5d894 mach_msg + 60
2 CoreFoundation 0x37521f7c __CFRunLoopServiceMachPort + 88
3 CoreFoundation 0x37521780 __CFRunLoopRun + 400
4 CoreFoundation 0x37521504 CFRunLoopRunSpecific + 220
5 CoreFoundation 0x37521412 CFRunLoopRunInMode + 54
6 Foundation 0x3517ec4e +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 210
7 Foundation 0x3515cb8a -[NSThread main] + 42
8 Foundation 0x35155b90 __NSThread__main__ + 908
9 libSystem.B.dylib 0x35de5b44 _pthread_start + 364
10 libSystem.B.dylib 0x35dd77a4 thread_start + 0
Thread 6:
0 libSystem.B.dylib 0x35d848d8 select$DARWIN_EXTSN + 20
1 CoreFoundation 0x3755aa34 __CFSocketManager + 356
2 libSystem.B.dylib 0x35de5b44 _pthread_start + 364
3 libSystem.B.dylib 0x35dd77a4 thread_start + 0
Thread 0 crashed with ARM Thread State:
r0: 0x00000000 r1: 0x00000000 r2: 0x3e73eb48 r3: 0x00000000
r4: 0x0048aba0 r5: 0x00000000 r6: 0x3e73eaa8 r7: 0x0048aba0
r8: 0x0048af00 r9: 0x3e25d978 r10: 0x35ce9029 r11: 0x0048af00
ip: 0x3e6a4c58 sp: 0x2fdfe298 lr: 0x3596ed90 pc: 0x0048af00
cpsr: 0x40070010
感谢任何答案,即使它们只是为我指明了正确的方向.
Any answers, even if they just point me in the right direction are appreciated.
这里是帮助解决这个问题的方法.我希望它也能帮助其他人.
So here's what helped solve this problem. I hope it helps others too.
我创建的 AppStore 版本使用的是 Xcode 3.2.6
The AppStore build I created was using Xcode 3.2.6
显然 XCode 的链接器有问题年.我偶然发现了这个试图处理 -all_load 标志错误.
Apparently there's some problem with XCode's linker as of last year. I stumbled in to this when trying to mess around with -all_load flag errors.
现在,当我使用 XCode4 创建相同的构建(无代码更改,无设置更改)时,临时版本不会崩溃.
Now, when I create the same build (no code change, no settings changes) using XCode4, the adhoc version doesn't crash.
现在我正在使用此版本更新 appStore 版本.如果阅读此答案的任何人认为知道 XCode 的这种行为背后的技术推理,请发布您的答案.这将有助于节省数小时的 headBangingAgainstTheWall!
For now I am updating the appStore version with this build. If anyone reading this answer thinks knows the technical reasoning behind this behavior of XCode, please do post your answer. It'll help save many hours of headBangingAgainstTheWall!
使用以下关键字进行谷歌搜索有帮助:
-all_load"崩溃
RNBRunLoopLaunchInferior(当应用程序崩溃并打印RNBRunLoopLaunchInferior DNBProcessLaunch()返回错误:'DRHT'时,这会显示在控制台中)
using the following keywords for googling helped:
"-all_load" crashes
RNBRunLoopLaunchInferior (this showed up in the console when the app crashed and printed RNBRunLoopLaunchInferior DNBProcessLaunch() returned error: 'DRHT')
希望这有帮助!