使用Xcode 6 .1在iOS8中发生符号崩溃

我以前在Xcode 5.1.1中直接象征了崩溃报告,因为在Organizer的Devices部分有“Symbolicate&Re-symbolicate”。 但升级到Xcode 6.1后,我发现既没有符号也没有resymbolicate选项来查看崩溃日志。 我很困惑。 怎么做?

以前我曾经与iTunes同步设备并查看~/Library/Logs/CrashReporter/MobileDevice的崩溃。 点击任何崩溃将打开与设备(Xcode),然后符号。 但现在,它打开了控制台,没有select象征。 Xcode 6.1是否有这样的选项?

在Xcode 6中手动符号化崩溃日志的步骤

  1. 如果您在发布之前将发布版本归档,那么请转到步骤2.否则将您的最终版本构build存档(无需更改任何代码)。

  2. 要find你的档案文件,打开组织者 – >select你的项目 – >select最新的档案文件 – >右键点击它 – >select“show in finder”

  3. 右键点击'* .xcarchive'文件并select'show package content'选项,然后进入产品文件夹 – >应用程序文件夹 – > YourAppName.app (.app扩展名在一些机器中隐藏)

  4. 复制并粘贴您的.app文件在不同的位置。 将崩溃日志文件也放在同一个文件夹中。 打开terminal应用程序,通过'cd'命令进入你粘贴的文件夹

  5. 并在terminal中input以下命令,并显示您的崩溃地址

xcrun atos -o YourAppName.app/YourAppName -arch armv7 -l 0xbd000 0x0013f745

注意:如果上述命令不起作用,则更改“armv7到armv7s”并检查。

例如:崩溃日志看起来像这样,你需要得到崩溃的地址,并把它放在上面的命令

 3 CoreGraphics 0x266814d3 CGPathAddLineToPoint + 171 4 YourAppName 0x00140a8b 0xbd000 + 539275 5 YourAppName 0x0013f745 0xbd000 + 534341 6 Foundation 0x27152d6b __NSThreadPerformPerform + 383 7 CoreFoundation 0x2640a375 

产品菜单下的Xcode可以使用插件。 这个插件可以通过恶意软件包pipe理器或直接从github下载。

这个插件在内部集成了一个shell脚本,可以执行以下命令来设置手动崩溃符号。

  1. 将一个别名设置为symbolicatecrash.pl perl脚本

alias symbolicatecrash ='/ Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / Library / PrivateFrameworks / DTDeviceKit.framework / Versions / A / Resources / symboliciccrash'

  1. 要findsymbolicatecrash,它应该与上面的别名不同:

find/Applications/Xcode.app -name symbolicatecrash -type f

  1. 设置DEVELOPER_DIRvariables:

export DEVELOPER_DIR ='/ Applications / Xcode.app / Contents / Developer'

  1. 随着dSYM的崩溃可以象征性的:

symbolicatecrash /path/to/MyApp_2012-10-01_Device.crash /path/to/MyApp.app.dSYM。

只需连接iOS设备,打开设备>设备>查看设备日志,然后将故障拖放到该设备的故障文件列表。 崩溃将被添加到列表中,只要存在原始存档,就会被符号化。

连接iOS设备,打开设备(shift命令2),select设备并点击“查看设备日志”。 在左边栏上,会出现崩溃日志。 select你感兴趣的那个。

只要您在崩溃时对设备上正在运行的版本进行了归档,几秒钟后崩溃日志就会自动进行符号化。 如果没有,请右键单击崩溃日志并select“重新符号日志”。