26

尝试调试应用程序。问题是我找不到这个程序。

symbolicatecrash.sh

sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash /usr/local/bin/

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

谢谢。

4

6 回答 6

89

编辑 :: XCode 4.3

您将需要遵循原始答案(如下)中概述的相同步骤,但有一些例外。

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

/usr/bin/xcode-select -打印路径

如果它显示“/Developer”或除“/Applications/Xcode.app/Contents/Developer/”以外的任何内容,那么它是错误的。要解决此问题,请运行以下命令:

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

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

查找 /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

符号崩溃的路径

使用以下命令从终端搜索:

查找 /Developer -name symbolicatecrash -type f

对我来说,这返回了:

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

如何手动符号化崩溃日志

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

我首先更改了包含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”文件。
于 2011-12-27T19:00:04.313 回答
5

A plugin is available for Xcode under the Product menu. This plugin is available through Alcatraz package manager or can be directly downloaded from github.

This plugin internally incorporates a shell script that does the set up of running the following commands for manual crash symbolication.

  1. Set an alias to symbolicatecrash.pl perl script

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

  1. To find symbolicatecrash, should it differ from the alias above:

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

  1. Set the DEVELOPER_DIR variable:

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

  1. With the dSYM the crash can be symbolicates as:

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

于 2015-07-18T01:42:38.520 回答
4

表示崩溃日志的一种方法是在终端上运行以下命令:

xcrun atos -o MyApp.app/MyApp -arch armv7 -l 0xb7000 -f MyApp.crash

将上述命令中的示例十六进制数 (0xb700) 替换为基本加载地址。基本加载地址是紧随其后的行中的第一个内存地址

“二进制图像:”

要获取 .app 文件:

右键单击 xcarchive 文件并选择 Show Package Contents .app 文件位于 Products/Applications 目录中。

于 2014-10-14T17:08:56.653 回答
2

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

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

于 2010-09-30T17:09:51.870 回答
2

正如 Apple 解释的那样,Xcode 将尝试自动进行符号化。它使用symbolicatecrash和聚光灯来做到这一点。但是,如果应用程序不是在本地构建或被删除,则必要的 .app 和 .dsym 文件不可用。

因此,请保留 dsym 文件和已发布版本的应用程序。构建工具通常会将 .dsym 文件压缩为 .dsym.zip 并将 .app 打包为 .ipa。您可以同时解压缩并将 .app 和 .dsym 复制到同一个文件夹。然后 Xcode 将能够使用 Spotlight 找到它们。

于 2013-11-25T11:38:56.440 回答
1

这是我使用的一个简单方法:

  1. 打开 Xcode 6
  2. 插入您的开发设备
  3. 在 Xcode 中,转到 Window > Devices > Select your device
  4. 按“查看设备日志”
  5. 将您的报告拖到窗口中进行查看
于 2015-02-24T13:18:25.823 回答