Iphone/IOS - 调试应用程序崩溃
Posted
技术标签:
【中文标题】Iphone/IOS - 调试应用程序崩溃【英文标题】:Iphone/IOS - Debugging Application Crashes 【发布时间】:2012-01-04 19:01:50 【问题描述】:根据我所读到的,这个话题在过去几年里出现了好几次,通常答案都很模糊,而且我在一年多的时间里没有提到它,所以我希望有进展。
无论如何,我目前有一个安装了 ios 5.0.1 的 Iphone 4,并且遇到了从 App Store 安装的大多数应用程序在闪屏上崩溃的问题。很多人说从 App Store 安装一个随机应用程序,重新安装应用程序,或者完全恢复你的手机可以解决这个问题,但它似乎不再有同样的效果(因为这些建议大部分是针对 IOS 4 和 3,而不是 5)。
所以,我所做的只是试图找到问题的根源。我将使用流行且知名的应用程序 UrbanSpoon 作为我的崩溃示例。以下是尝试运行 UrbanSpoon 后的系统日志和崩溃报告。据我从他们那里了解到,这与 IOS 沙箱应用程序的方式有关,但我无法弄清楚哪一部分具体说明了可能导致崩溃的原因。
非常感谢您对此的任何帮助,希望这些答案能对遇到此问题的每个人有所帮助!
系统日志:
(从 UrbanSpoon 首次执行到最后一次提及应用程序的日志文件中截取)
编辑: Syslog 太大,无法在此处发布,这里是它的链接。 http://dl.dropbox.com/u/9235267/MyiPhoneSysLogForUrbanSpoon.txt
UrbanSpoon 崩溃报告:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AutoSubmitted</key>
<true/>
<key>SysInfoCrashReporterKey</key>
<string>38f6d9c3d504f902f8dbae968517559766e3092d</string>
<key>bug_type</key>
<string>109</string>
<key>description</key>
<string>Incident Identifier: 568DB2CE-F9A2-47A7-A427-B5C4DF6A09D0
CrashReporter Key: 38f6d9c3d504f902f8dbae968517559766e3092d
Hardware Model: iPhone3,1
Process: urbanspin [282]
Path: /var/mobile/Applications/42579EAA-3CD0-4B2B-BFF5-5EB1C9297207/urbanspin.app/urbanspin
Identifier: urbanspin
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-01-04 13:22:22.479 -0500
OS Version: iPhone OS 5.0.1 (9A405)
Report Version: 104
Exception Type: 00000020
Exception Codes: 0x8badf00d
Highlighted Thread: 0
Application Specific Information:
com.urbanspoon.urbanspin failed to launch in time
Elapsed total CPU time (seconds): 20.580 (user 20.580, system 0.000), 100% CPU
Elapsed application CPU time (seconds): 0.511, 2% CPU
Thread 0:
0 ??? 0x34a7f110 0 + 883421456
1 Foundation 0x32356c92 0x32350000 + 27794
2 AnyRingLib.dylib 0x00379a3e 0x377000 + 10814
3 dyld 0x2febdf80 0x2feb1000 + 53120
4 dyld 0x2febdbcc 0x2feb1000 + 52172
5 dyld 0x2febb7d0 0x2feb1000 + 42960
6 dyld 0x2febc790 0x2feb1000 + 46992
7 dyld 0x2feb35c0 0x2feb1000 + 9664
8 dyld 0x2feb9106 0x2feb1000 + 33030
9 ??? 0x3367b5a4 0 + 862434724
10 SubstrateLoader.dylib 0x000d46ae 0xd3000 + 5806
11 SubstrateLoader.dylib 0x000d4828 0xd3000 + 6184
12 dyld 0x2febdece 0x2feb1000 + 52942
13 dyld 0x2febdbd4 0x2feb1000 + 52180
14 dyld 0x2febb7d0 0x2feb1000 + 42960
15 dyld 0x2febc790 0x2feb1000 + 46992
16 dyld 0x2feb35c0 0x2feb1000 + 9664
17 dyld 0x2feb9106 0x2feb1000 + 33030
18 ??? 0x3367b5a4 0 + 862434724
19 MobileSubstrate.dylib 0x0009aea0 0x9a000 + 3744
20 dyld 0x2febdece 0x2feb1000 + 52942
21 dyld 0x2febdbd4 0x2feb1000 + 52180
22 dyld 0x2febb7d0 0x2feb1000 + 42960
23 dyld 0x2febc790 0x2feb1000 + 46992
24 dyld 0x2feb39f0 0x2feb1000 + 10736
25 dyld 0x2feb7b80 0x2feb1000 + 27520
26 dyld 0x2feb22ca 0x2feb1000 + 4810
27 dyld 0x2feb205c 0x2feb1000 + 4188
Thread 1:
0 ??? 0x34a7e3b4 0 + 883418036
1 ??? 0x34beab98 0 + 884911000
2 ??? 0xfffffffc 0 + -4
Thread 2:
0 ??? 0x34a8ecd4 0 + 883485908
1 ??? 0x3626d0a0 0 + 908513440
Thread 3:
0 ??? 0x34a8ecd4 0 + 883485908
1 ??? 0x3626d0a0 0 + 908513440
Unknown thread crashed with unknown flavor: 5, state_count: 1
Binary Images:
0x1000 - 0x74fff +urbanspin armv7 <0b3e8cdf11113d1abf4c0d83ef1a3ebe> /var/mobile/Applications/42579EAA-3CD0-4B2B-BFF5-5EB1C9297207/urbanspin.app/urbanspin
0x9a000 - 0x9afff +MobileSubstrate.dylib armv6 <cf2cce379dcd3a4c970e3196b908b0b6> /Library/MobileSubstrate/MobileSubstrate.dylib
0xd3000 - 0xd4fff +SubstrateLoader.dylib armv6 <30381ec9e24c3c289f447bf428bda2c1> /Library/Frameworks/CydiaSubstrate.framework/Libraries/SubstrateLoader.dylib
0xf7000 - 0xfafff libsubstrate.dylib armv6 <d375337d03a7324c9cfb608b7231eeea> /usr/lib/libsubstrate.dylib
0x300000 - 0x311fff +ActionMenu.dylib armv6 <62581e9bc0d93ef2ab8175cd5e337e62> /Library/MobileSubstrate/DynamicLibraries/ActionMenu.dylib
0x318000 - 0x321fff +Activator.dylib armv6 <53595f5e871d3d7eac4f8e945b039de3> /Library/MobileSubstrate/DynamicLibraries/Activator.dylib
0x329000 - 0x365fff +AdBlocker.dylib armv6 <07089bfdb5563a33bee5fc772477dd33> /Library/MobileSubstrate/DynamicLibraries/AdBlocker.dylib
0x377000 - 0x396fff +AnyRingLib.dylib armv6 <98857b11e0d73e13dfb59d83ed186a0e> /Library/MobileSubstrate/DynamicLibraries/AnyRingLib.dylib
0x2feb1000 - 0x2fed2fff dyld armv7 <be7c0b491a943054ad12eb5060f1da06> /usr/lib/dyld
0x31933000 - 0x31a78fff CoreGraphics armv7 <641fb6e558f239588a8bd05dbefff99a> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
0x32350000 - 0x324cefff Foundation armv7 <ce466f428d953caaac6641d186665809> /System/Library/Frameworks/Foundation.framework/Foundation
0x362fd000 - 0x363edfff QuartzCore armv7 <ff595b1a042933249466e92433e1af6f> /System/Library/Frameworks/QuartzCore.framework/QuartzCore
0x36d54000 - 0x371edfff UIKit armv7 <97b527cd6fba35c6bb39263e0f362223> /System/Library/Frameworks/UIKit.framework/UIKit
0x378d1000 - 0x3791cfff CoreLocation armv7 <b640873565a03e45a7d4c38d1b5abade> /System/Library/Frameworks/CoreLocation.framework/CoreLocation
</string>
<key>displayName</key>
<string>urbanspin</string>
<key>name</key>
<string>urbanspin</string>
<key>os_version</key>
<string>iPhone OS 5.0.1 (9A405)</string>
<key>system_ID</key>
<string></string>
<key>version</key>
<string>??? (???)</string>
</dict>
</plist>
【问题讨论】:
【参考方案1】:这行:“应用程序未能按时启动”似乎是整个事情的根源。这意味着应用程序在 -applicationDidFinishLaunchingWithOptions 方法中启动时做了太多工作。将较长的加载时间与 100% 的 CPU 使用率相结合,该应用程序看起来就像是精美瓷器商店中的一头公牛。而这些正是操作系统喜欢杀死的应用类型。
【讨论】:
那么,真的是 CPU 用完了然后就超时了? 嗯,每个app的开启功能(-applicationDidFinishLaunchingWithoptions)。需要尽快退出。如果没有,则触发 wait_fence。 20 秒太长了,意味着您的应用程序正在超载它的启动功能。 100% 的 CPU 使用率只是锦上添花。 有道理。我只是觉得奇怪的是每个应用商店应用程序都有这个问题,我只是以 UrbanSpoon 为例,但所有应用商店应用程序都有这个问题。资源应用程序的繁重和轻量级。 这似乎更像是一个特定于硬件的问题。我会带你去当地苹果商店的天才吧。如果每个应用程序都崩溃了,那肯定不是程序本身。 根据线程 0 调用堆栈,涉及越狱库(MobileSubstrate 和 SubstrateLoader)并侵入线程。既然您说这会影响所有应用程序,那么这很可能不是一般的硬件问题,而是这些库的问题。删除越狱和那些库,如果一切运行良好,我不会感到惊讶。以上是关于Iphone/IOS - 调试应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
使用 Xcode 13.2 在设备中进行测试时,应用程序在 iPhone 6、iOS 12.5 上崩溃