9

我的 iOS 应用程序有一个奇怪的问题。当它通过 Xcode (Build & Run) 运行时,一切正常。该应用程序启动,一切都按预期工作。

但是,如果我尝试像用户一样(通过 Springboard)点击其图标来打开应用程序,应用程序会立即崩溃,并显示下面的崩溃日志。它似乎指向某种与图像相关的问题,但我不明白在使用 Xcode 进行调试时它不会发生。

任何人都可以解释一下吗?

Date/Time:       2012-06-15 16:13:29.035 +0100
OS Version:      iPhone OS 5.1.1 (9B206)
Report Version:  104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   dyld                            0x2fe76464 strcmp + 0
1   dyld                            0x2fe6a6e2 ImageLoaderMachO::parseLoadCmds() + 54
2   dyld                            0x2fe72058 ImageLoaderMachOCompressed::instantiateFromFile(char const*, int, unsigned char const*, unsigned long long, unsigned long long, stat const&, unsigned int, unsigned int, linkedit_data_command const*, ImageLoader::LinkContext const&) + 296
3   dyld                            0x2fe6b23a ImageLoaderMachO::instantiateFromFile(char const*, int, unsigned char const*, unsigned long long, unsigned long long, stat const&, ImageLoader::LinkContext const&) + 302
4   dyld                            0x2fe622f6 _ZN4dyldL10loadPhase6EiRK4statPKcRKNS_11LoadContextE + 478
5   dyld                            0x2fe6255e _ZN4dyldL14loadPhase5statEPKcRKNS_11LoadContextEP4statPiPbPSt6vectorIS1_SaIS1_EE + 386
6   dyld                            0x2fe62716 _ZN4dyldL10loadPhase5EPKcS1_RKNS_11LoadContextEPSt6vectorIS1_SaIS1_EE + 278
7   dyld                            0x2fe628fe _ZN4dyldL10loadPhase4EPKcS1_RKNS_11LoadContextEPSt6vectorIS1_SaIS1_EE + 218
8   dyld                            0x2fe630dc _ZN4dyldL10loadPhase3EPKcS1_RKNS_11LoadContextEPSt6vectorIS1_SaIS1_EE + 1144
9   dyld                            0x2fe63240 _ZN4dyldL10loadPhase1EPKcS1_RKNS_11LoadContextEPSt6vectorIS1_SaIS1_EE + 108
10  dyld                            0x2fe63392 _ZN4dyldL10loadPhase0EPKcS1_RKNS_11LoadContextEPSt6vectorIS1_SaIS1_EE + 262
11  dyld                            0x2fe634c4 dyld::load(char const*, dyld::LoadContext const&) + 224
12  dyld                            0x2fe650f2 dlopen + 742
13  libdyld.dylib                   0x360d55a2 dlopen + 42
14  CoreFoundation                  0x37256092 _CFBundleDlfcnLoadBundle + 106
15  CoreFoundation                  0x37255f36 _CFBundleLoadExecutableAndReturnError + 370
16  Foundation                      0x32d7bf40 -[NSBundle loadAndReturnError:] + 904
17  SomeApp                         0x000bcb3a 0x5e000 + 387898
18  SomeApp                         0x000c56d0 0x5e000 + 423632
19  SomeApp                         0x000c539a 0x5e000 + 422810
20  SomeApp                         0x00062f86 0x5e000 + 20358
21  UIKit                           0x30438c84 -[UIViewController view] + 160
22  SomeApp                         0x000622a6 0x5e000 + 17062
23  SomeApp                         0x0005fcc4 0x5e000 + 7364
24  UIKit                           0x30437ca4 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1176
25  UIKit                           0x304317d6 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 402
26  UIKit                           0x303ffabc -[UIApplication handleEvent:withNewEvent:] + 1004
27  UIKit                           0x303ff560 -[UIApplication sendEvent:] + 48
28  UIKit                           0x303fef34 _UIApplicationHandleEvent + 5820
29  GraphicsServices                0x3741b224 PurpleEventCallback + 876
30  CoreFoundation                  0x3729f51c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32
31  CoreFoundation                  0x3729f4be __CFRunLoopDoSource1 + 134
32  CoreFoundation                  0x3729e30c __CFRunLoopRun + 1364
33  CoreFoundation                  0x3722149e CFRunLoopRunSpecific + 294
34  CoreFoundation                  0x37221366 CFRunLoopRunInMode + 98
35  UIKit                           0x30430864 -[UIApplication _run] + 544
36  UIKit                           0x3042dcce UIApplicationMain + 1074
37  SomeApp                         0x0005fb00 0x5e000 + 6912
38  SomeApp                         0x0005fac0 0x5e000 + 6848

编辑:与 Apple 开发团队讨论过这个问题。问题是我在我的应用程序中使用了一个没有代码签名的自制插件(即使我告诉 Xcode 这样做)。但是,Xcode 4.3.3 有一个错误会破坏捆绑包的代码设计,所以我们很快就会看到它是如何解决的。

4

2 回答 2

4

从 Xcode 4.5 开始,这似乎仍然是一个问题。作为一种解决方法,您似乎可以强制构建对捆绑包进行签名。

添加以下内容作为捆绑包的最终“运行脚本”构建阶段为我修复了它:

codesign -fs "iPhone Developer" ${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}

于 2012-11-19T17:46:23.683 回答
3

您的应用程序可能需要很长时间才能启动。从 Xcode 启动时它被赋予了无限的时间,但从 SpringBoard 启动时却没有这种奢侈。

看看这个以供参考:https ://developer.apple.com/library/ios/#qa/qa2009/qa1592.html

编辑:哦,我是怎么到这里的......这是两周大的。

于 2012-06-29T19:12:59.163 回答