尝试调试应用。麻烦的是我找不到这个程序。
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
感谢。
答案 0 :(得分:89)
您需要按照原始答案(下面)中列出的相同步骤进行操作,但有一些例外。
首先,您需要修复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
从终端运行此内容:
查找/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 /
使用以下方式从终端搜索:
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文件。
以下是步骤:
答案 1 :(得分:5)
产品菜单下的Xcode可以使用插件。此插件可通过Alcatraz package manager获得,也可以直接下载from github。
此插件内部包含一个shell脚本,用于运行以下命令以进行手动崩溃符号化。
别名 symbolicatecrash = '/应用/ Xcode.app /内容/开发商/平台/ iPhoneOS.platform /开发商/库/ PrivateFrameworks / DTDeviceKit.framework /版本/ A /资源/ symbolicatecrash'
查找/Applications/Xcode.app -name symbolicatecrash -type f
export DEVELOPER_DIR ='/ Applications / Xcode.app / Contents / Developer'
symbolicatecrash /path/to/MyApp_2012-10-01_Device.crash /path/to/MyApp.app.dSYM。
答案 2 :(得分:4)
表示崩溃日志的一种方法是在终端上运行以下命令:
xcrun atos -o MyApp.app/MyApp -arch armv7 -l 0xb7000 -f MyApp.crash
使用基本加载地址替换上面命令中的示例十六进制数(0xb700)。基本加载地址是紧接在
之后的行中的第一个内存地址“二进制图片:”
获取.app文件:
右键单击xcarchive文件并选择Show Package Contents .app文件位于Products / Applications目录中。
答案 3 :(得分:2)
我刚刚在这里写了一篇关于调试崩溃日志的文章:http://just2us.com/2010/10/reading-iphone-crashlog/
如果将日志拖放到Xcode足以满足您的需要,您可能不再需要symbolicatecrash.sh。我使用的是3.2.4,我也找不到脚本。
答案 4 :(得分:2)
正如Apple解释的那样,Xcode will try to symbolicate automatically.它使用symbolicatecrash
和聚光灯来做到这一点。但是,如果应用程序未在本地构建或已删除,则必需的.app和.dsym文件不可用。
所以请保留dsym文件和已发布版本的应用程序。构建工具通常会将.dsym文件压缩为.dsym.zip,并将.app打包为.ipa。您可以解压缩并将.app和.dsym复制到同一文件夹。然后Xcode将能够使用聚光灯找到它们。
答案 5 :(得分:1)
这是我使用的一个简单方法: