我遇到了一个iPhone应用程序的问题,该应用程序在少数几个用户的启动时崩溃。大多数用户都很好 - 应用程序存在于应用程序商店,Apple没有发现任何问题,我在测试时从未发现过这些问题。但是,它们存在。
因此。这就是我所知道的。我相信iPod touch用户会发生崩溃。从我从一个用户那里获得的崩溃日志中,我知道了异常代码:
Exception Codes: 0x00000000, 0x00000000
我认为我的应用程序试图写入内存中的nil指针? (下面主要是完整的崩溃日志)。所以,我对可能发生的事情有一些想法,我希望有人可以提供帮助...我的一些理论如下:我会更喜欢一些想法。问题是,我很难调试,因为我没有在我的任何测试设备(iPhone4,iPhone3G,iPodTouch,iPad)上遇到问题......
Theory1 )我在viewDidLoad中定义了几个整数,然后在viewWillAppear中使用它们。愚蠢,我知道,但我假设操作的顺序是viewDidLoad,viewWillAppear,然后是viewDidAppear。总是这样吗?我正在从appDelegate加载这个viewController,如果这有帮助...
Theory2 )我在viewController中创建了一个UIViews数组。这些视图是IBOutlets。目前,我正在viewDidLoad委托方法中创建此数组。这些可能不存在吗?如果我等到viewWill或viewDid出现,那会解决这个问题吗?
Theory3 )在应用程序中,我有一个自定义委托,它在一个nib文件中声明自己。是否可以在视图控制器准备好之前向它们发送消息?
Theory4 )它与版本最低iOs部署目标有关。目前,我正在建立4.1,但我的开发目标设置为3.1。我不相信我使用的方法不存在,但这可能是根本吗?
对这些中的任何一个都有信任吗?其他人面临类似的问题?非常感谢您的帮助。这是完整的,或多或少的崩溃报告:
Incident Identifier: 2B873C9A-8B07-43FC-A5E9-E83D53A42B35 CrashReporter Key: 5a39aac7c109610da9b8ed70df794d6feb519f19 Process: ## CENSORED FOR EMBARRASSMENT PROTECTION ## Path: /var/mobile/Applications/ Identifier: ## CENSORED FOR EMBARRASSMENT PROTECTION ## Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2010-11-12 18:59:04.099 +0000 OS Version: iPhone OS 3.1.3 (7E18) Report Version: 104 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x00000000, 0x00000000 Crashed Thread: 0 Thread 0 Crashed: 0 libSystem.B.dylib 0x33994b2c 0x33904000 + 592684 1 libSystem.B.dylib 0x33994b1a 0x33904000 + 592666 2 libSystem.B.dylib 0x33994b0e 0x33904000 + 592654 3 libSystem.B.dylib 0x339abe34 0x33904000 + 687668 4 libstdc++.6.dylib 0x30800390 0x3079a000 + 418704 5 libobjc.A.dylib 0x3336e898 0x33366000 + 34968 6 libstdc++.6.dylib 0x307fda84 0x3079a000 + 408196 7 libstdc++.6.dylib 0x307fdafc 0x3079a000 + 408316 8 libstdc++.6.dylib 0x307fdc24 0x3079a000 + 408612 9 libobjc.A.dylib 0x3336ce54 0x33366000 + 28244 10 CoreFoundation 0x338ecbf6 0x33857000 + 613366 11 CoreFoundation 0x33871b12 0x33857000 + 109330 12 CoreFoundation 0x33868838 0x33857000 + 71736 13 UkeBank 0x00003cd2 0x1000 + 11474 14 UIKit 0x3207a8d0 0x31fff000 + 506064 15 UIKit 0x32077a40 0x31fff000 + 494144 16 UIKit 0x320773fc 0x31fff000 + 492540 17 UIKit 0x32076f44 0x31fff000 + 491332 18 UIKit 0x32079824 0x31fff000 + 501796 19 UIKit 0x32077a40 0x31fff000 + 494144 20 UIKit 0x32076f44 0x31fff000 + 491332 21 UIKit 0x32077c90 0x31fff000 + 494736 22 UIKit 0x32077a40 0x31fff000 + 494144 23 UIKit 0x320773fc 0x31fff000 + 492540 24 UIKit 0x32076f44 0x31fff000 + 491332 25 UIKit 0x32074954 0x31fff000 + 481620 26 UIKit 0x32074558 0x31fff000 + 480600 27 UIKit 0x32088304 0x31fff000 + 561924 28 UIKit 0x320880b8 0x31fff000 + 561336 29 UIKit 0x32068750 0x31fff000 + 431952 30 UIKit 0x32087fd8 0x31fff000 + 561112 31 UIKit 0x32087d90 0x31fff000 + 560528 32 UIKit 0x32087c3c 0x31fff000 + 560188 33 UIKit 0x3208763c 0x31fff000 + 558652 34 UIKit 0x320873a8 0x31fff000 + 557992 35 UIKit 0x32087298 0x31fff000 + 557720 36 UIKit 0x3206b86c 0x31fff000 + 444524 37 UIKit 0x320472d0 0x31fff000 + 295632 38 QuartzCore 0x31b651b8 0x31b59000 + 49592 39 QuartzCore 0x31b64ed4 0x31b59000 + 48852 40 QuartzCore 0x31b6483c 0x31b59000 + 47164 41 QuartzCore 0x31b6446c 0x31b59000 + 46188 42 QuartzCore 0x31b64318 0x31b59000 + 45848 43 UIKit 0x32051e94 0x31fff000 + 339604 44 UIKit 0x32003a80 0x31fff000 + 19072 45 UIKit 0x32054df8 0x31fff000 + 351736 46 UIKit 0x32054634 0x31fff000 + 349748 47 UIKit 0x3205408c 0x31fff000 + 348300 48 GraphicsServices 0x3434f7dc 0x3434a000 + 22492 49 CoreFoundation 0x338ae524 0x33857000 + 357668 50 CoreFoundation 0x338adc18 0x33857000 + 355352 51 UIKit 0x32002c00 0x31fff000 + 15360 52 UIKit 0x32001228 0x31fff000 + 8744 53 UkeBank 0x0000213c 0x1000 + 4412 54 UkeBank 0x0000210c 0x1000 + 4364 Thread 1: 0 libSystem.B.dylib 0x33905488 0x33904000 + 5256 1 libSystem.B.dylib 0x33908064 0x33904000 + 16484 2 CoreFoundation 0x338ae002 0x33857000 + 356354 3 CoreFoundation 0x338adc18 0x33857000 + 355352 4 WebCore 0x33ac61d4 0x33a42000 + 541140 5 libSystem.B.dylib 0x3392f780 0x33904000 + 178048 Thread 0 crashed with ARM Thread State: r0: 0x00000000 r1: 0x00000000 r2: 0x00000001 r3: 0x385333cc r4: 0x00000006 r5: 0x0012e6ac r6: 0x2fffccfc r7: 0x2fffcd0c r8: 0x385265c4 r9: 0x0000000a r10: 0x30cb8524 r11: 0x00000000 ip: 0x00000025 sp: 0x2fffcd0c lr: 0x33994b21 pc: 0x33994b2c cpsr: 0x00070010 Binary Images: 0x1000 - 0x9fff +UkeBank armv6 /var/mobile/Applications/6D5DFEC6-21DF-431C-B2B2-DEACE4366B61/UkeBank.app/UkeBank 0x6a000 - 0x6bfff dns.so armv6 /usr/lib/info/dns.so 0x2fe00000 - 0x2fe26fff dyld armv6 /usr/lib/dyld 0x30092000 - 0x300c6fff Security armv6 /System/Library/Frameworks/Security.framework/Security 0x300ca000 - 0x3021efff AudioToolbox armv6 /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox 0x30343000 - 0x3034cfff SpringBoardServices armv6 /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices 0x30490000 - 0x30591fff libicucore.A.dylib armv6 /usr/lib/libicucore.A.dylib 0x3079a000 - 0x30804fff libstdc++.6.dylib armv6 /usr/lib/libstdc++.6.dylib 0x30805000 - 0x30902fff JavaScriptCore armv6 /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore 0x30f96000 - 0x30f97fff CoreSurface armv6 /System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface 0x30fba000 - 0x31067fff ImageIO armv6 /System/Library/PrivateFrameworks/ImageIO.framework/ImageIO 0x310b3000 - 0x310bdfff libkxld.dylib armv6 /usr/lib/system/libkxld.dylib 0x310be000 - 0x31278fff CoreGraphics armv6 /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics 0x3138c000 - 0x313aafff AddressBook armv6 /System/Library/Frameworks/AddressBook.framework/AddressBook 0x313e2000 - 0x3143dfff CoreAudio armv6 /System/Library/Frameworks/CoreAudio.framework/CoreAudio 0x31465000 - 0x314a2fff libCGFreetype.A.dylib armv6 /System/Library/Frameworks/CoreGraphics.framework/Resources/libCGFreetype.A.dylib 0x31546000 - 0x315f3fff WebKit armv6 /System/Library/PrivateFrameworks/WebKit.framework/WebKit 0x31600000 - 0x3164dfff IOKit armv6 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x31767000 - 0x3176dfff liblockdown.dylib armv6 /usr/lib/liblockdown.dylib 0x318f1000 - 0x3195efff CFNetwork armv6 /System/Library/Frameworks/CFNetwork.framework/CFNetwork 0x319c4000 - 0x319fffff CoreTelephony armv6 /System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony 0x31a00000 - 0x31a0afff MobileCoreServices armv6 /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices 0x31b59000 - 0x31c03fff QuartzCore armv6 /System/Library/Frameworks/QuartzCore.framework/QuartzCore 0x31c04000 - 0x31c38fff SystemConfiguration armv6 /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration 0x31ca1000 - 0x31cdffff CoreText armv6 /System/Library/PrivateFrameworks/CoreText.framework/CoreText 0x31d09000 - 0x31dfffff libxml2.2.dylib armv6 /usr/lib/libxml2.2.dylib 0x31fd7000 - 0x31ffefff AppSupport armv6 /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport 0x31fff000 - 0x32df0fff UIKit armv6 /System/Library/Frameworks/UIKit.framework/UIKit 0x32e05000 - 0x32e5ffff libsqlite3.dylib armv6 /usr/lib/libsqlite3.dylib 0x32e78000 - 0x32f70fff Foundation armv6 /System/Library/Frameworks/Foundation.framework/Foundation 0x32f71000 - 0x32f79fff libgcc_s.1.dylib armv6 /usr/lib/libgcc_s.1.dylib 0x32f7a000 - 0x32f91fff OpenGLES armv6 /System/Library/Frameworks/OpenGLES.framework/OpenGLES 0x33242000 - 0x3324efff CoreVideo armv6 /System/Library/PrivateFrameworks/CoreVideo.framework/CoreVideo 0x3324f000 - 0x3324ffff vecLib armv6 /System/Library/PrivateFrameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib 0x332b2000 - 0x332c2fff libbsm.0.dylib armv6 /usr/lib/libbsm.0.dylib 0x332e8000 - 0x332e9fff IOMobileFramebuffer armv6 /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer 0x3335f000 - 0x33365fff MBX2D armv6 /System/Library/PrivateFrameworks/MBX2D.framework/MBX2D 0x33366000 - 0x33409fff libobjc.A.dylib armv6 /usr/lib/libobjc.A.dylib 0x3342f000 - 0x33437fff AVFoundation armv6 /System/Library/Frameworks/AVFoundation.framework/AVFoundation 0x33730000 - 0x3373efff libz.1.dylib armv6 /usr/lib/libz.1.dylib 0x337df000 - 0x337fdfff libresolv.9.dylib armv6 /usr/lib/libresolv.9.dylib 0x33856000 - 0x33856fff Accelerate armv6 /System/Library/PrivateFrameworks/Accelerate.framework/Accelerate 0x33857000 - 0x33903fff CoreFoundation armv6 /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 0x33904000 - 0x33a2afff libSystem.B.dylib armv6 /usr/lib/libSystem.B.dylib 0x33a3d000 - 0x33a41fff IOSurface armv6 /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface 0x33a42000 - 0x34195fff WebCore armv6 /System/Library/PrivateFrameworks/WebCore.framework/WebCore 0x3430f000 - 0x34349fff libvDSP.dylib armv6 /System/Library/PrivateFrameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib 0x3434a000 - 0x34355fff GraphicsServices armv6 /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
答案 0 :(得分:2)
之前我遇到过类似的问题,我的解决方案是弱链接libSystem.B.dylib
1。)打开目标的属性(双击左侧“Groups& Files”窗格中的目标)。
2.)转到常规标签。
3.)找到列出的“libSystem.B.dylib”并将“Required”更改为“Weak”。
如果未列出libSystem.B.dylib,则通过“Existing Frameworks”添加它。
答案 1 :(得分:1)
13 UkeBank 0x00003cd2 0x1000 + 11474
这很可能是出错的地方(假设您的应用程序中存在错误而不是框架)。弄清楚你的代码在那里做了什么(使用调试符号和/或解析器),你将走上一个不仅仅是猜测的理论之路。