好的,事实证明这个答案现在是最新 XCode 5.1.1 所需要的:
最近我有一个临时构建的崩溃日志。XCode 拒绝符号化。我有一个几个小时前的存档版本,我想使用我的存档版本强制进行符号化。这是我的做法:
1) 首先,我打开一个终端窗口并转到包含我的存档的目录。我运行了这个命令:
xcrun dwarfdump --uuid Example.app/Example | tr '[:upper:]' '[:lower:]' | tr -d '-'
这提取了存档构建的 dsym_uuid。tr 命令将 guid 从带有破折号的大写 guid 转换为没有破折号的小写 guid
2)我进入 .crash 文件并将崩溃日志中与我的二进制文件关联的 guid 更改为与我机器上的 xcdarchive 关联的 guid
例如,从
0x80000 - 0x49efff +MyApp armv7 <aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp
到
0x80000 - 0x49efff +MyApp armv7 <bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp
3)从终端,我将我的 DEVELOPER_DIR 环境变量设置为:
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
4)最后,我运行了这个野兽的命令:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash -v MyApp.crash /Users/me/Library/Developer/Xcode/Archives/2013-05-31/MyApp\ 5-31-13\ 7.00\ PM.xcarchive/Products/Applications/MyApp.app
请注意,较新版本的 XCode 中 symbolicatecrash 的路径更改为:
/Applications/Xcode6.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
此命令使用您拥有的 .crash 文件对您的存档运行 symbolicatecrash