如何手动标记iOS崩溃以查看崩溃日志

but*_*boy 26 iphone crash-log ipad symbolicatecrash ios

试图调试应用程序.麻烦的是我找不到这个程序.

symbolicatecrash.sh

sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

它是单独的下载吗?我正在使用XCode 3.2.3

谢谢.

Sam*_*Sam 89

编辑:: XCode 4.3

您将需要按照原始答案(下面)中列出的相同步骤进行操作,但有一些例外.

首先,您需要修复Xcode路径.打开终端并运行:

/ usr/bin/xcode-select -print-path

如果它显示"/ Developer"或"/Applications/Xcode.app/Contents/Developer/"之外的任何内容,则表示错误.要解决此问题,请运行命令:

sudo/usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/

您现在可以运行以下所有步骤,但symbolicatecrash命令位于新位置(再次).这是因为Xcode现在安装为应用程序. 要从symbolicatecrash终端查找运行:

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

这应该返回:

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

在运行之前,symbolicatecrash您可能希望转到以下目录:

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/


原始答案:: Xcode <4.3

symbolicatecrash的路径

使用以下方式从终端搜索:

find/Developer -name symbolicatecrash -type f

对我来说这回来了:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

如何手动标记崩溃日志

运行symbolicatecrash命令,将崩溃日志作为第一个参数,将dSYM文件作为第二个参数.请注意,如果您将运行symbolicatecrash从你必须把当前目录./中的前像./symbolicatecrash,除非你的PATH环境变量包括命令所在目录.

我首先更改到其中包含symbolicatecrash命令的目录(注意:Xcode 4.3将有所不同,请参阅顶部):

cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/

然后我执行了以下命令:

./symbolicatecrash /somePath/MyCrashLogFile.crash /somePath/MyAppName.app.dSYM

如何查找dSYM文件:

您必须拥有用于创建崩溃的构建的存档才能获取dSYM文件.

以下是步骤:

  1. ctrl从管理器右键单击(或单击)存档,然后选择"在Finder中显示".
  2. 从finder中的xcarchive文件中,右键单击(或ctrl单击)此文件,然后选择"显示包内容".然后,您将看到"dSYMs"文件夹.
  3. 在"dSYMs"文件夹中,您将找到符号化文件所需的"YourAppName.app.dSYM"文件.

  • 当我尝试运行symbolicatecrash时出现此错误:错误:"DEVELOPER_DIR"未在./symbolicatecrash第53行定义.编辑:这工作:export DEVELOPER_DIR ="/ Applications/XCode.app/Contents/Developer" (32认同)
  • 在Xcode 6中,路径是`Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash` (8认同)
  • 值得注意的是,除非你从同一个.ipa中提取了正确的.app,否则符号化将无法工作,导致崩溃在与.dSYM和.crash相同的文件夹中.我建议在桌面上创建一个新文件夹,然后将.dSYM和.crash文件放入其中.然后通过将名称更改为ApplicationName.zip从ApplicationName.ipa中提取.app,双击它以解压缩内容.打开文件夹,在里面找到ApplicationName.app.将ApplicationName.app复制到桌面上的文件夹中.现在在该文件夹中的.crash和.dSYM上运行符号. (2认同)

Mah*_*hag 5

在"产品"菜单下,Xcode可以使用插件.这个插件可以通过Alcatraz包管理器获得,也可以直接从github下载.

此插件内部包含一个shell脚本,该脚本执行以下命令的设置,以执行手动崩溃符号化.

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

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

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

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

  1. 设置DEVELOPER_DIR变量:

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

  1. 使用dSYM,崩溃可以象征为:

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


sam*_*ize 2

我刚刚在 5 分钟前写了一篇关于调试崩溃日志的文章:http://just2us.com/2010/10/reading-iphone-crashlog/

如果将日志拖放到 Xcode 足以满足您的目的,您可能不再需要 symbolicatecrash.sh。我用的是3.2.4,也找不到脚本。

  • @BradLarson 事实证明脚本仍然是必要的。我导入了在另一台计算机上构建的存档,并且出于某种原因,XCode 根本不会自动表示从该存档生成的构建的崩溃日志。:( 然而,使用 `symbolicatecrash` 我仍然能够对崩溃进行符号化。但是,我肯定更喜欢 XCode 自动对它进行符号化,它并不总是全部。 (3认同)