iOS: symbolicatecrash 被卡住了
iOS: symbolicatecrash is stuck
symbolicatecrash 卡住了。
我试图 运行 像这样:
symbolicatecrash -v crash.txt MYAPP
执行永远不会结束。它过去曾经工作,但现在(Xcode 7 和 8)它被卡住了。
请问有解决办法吗?
解决方法如下:
深入的细节出现在这里:iOS9: duplicated lines in crash reports are causing symbolicatecrash to get stuck
快速解决方案是编辑此 perl 脚本(Xcode 8 中的新位置!):
/Applications/Xcode.app//Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
现在搜索 defined($images{$bundlename})
并在其后添加 next;
,如下所示:
if ( defined($images{$bundlename}) ) {
next;
就这些了!
一些非常有用的符号提示:
对于符号化,您需要 3 个文件:
带有崩溃报告的文本文件:以 Incident Identifier:
开头,以 0x1974d0000 - 0x1974f3fff libxpc.dylib arm64 <ad580443238d39978d09004c210d0c18> /usr/lib/system/libxpc.dylib
结尾
应用程序文件夹,名为 MYAPP.app(Finder 隐藏了 .app 扩展名)。如果你有应用程序的 IPA,解压它,它会希望 Payload 文件夹。
编译时Xcode生成的dSYM文件夹。
您应该将 dSYM 文件夹重命名为 MYAPP.app.dSYM,并将所有三个文件放在同一文件夹中。
三个必须有相同的UUID。要验证您是否可以使用以下命令(我通过 运行 brew install gnu-sed
得到 gsed
):
应用的 UUID:
dwarfdump --uuid MYAPP.app/MYAPP
符号的 UUID:
dwarfdump --uuid MYAPP.app.dSYM
UUID od 崩溃:
cat crash.txt | grep -A 1 "Binary Images:" | gsed -r -n -e 's_.*<([0-9a-z]{8})([0-9a-z]{4})([0-9a-z]{4})([0-9a-z]{4})([0-9a-z]{12}).*_----_p' | awk '{print toupper([=20=])}'
现在,如果它们都匹配相同的 UUID,您可以:
symbolicatecrash -v crash.txt MYAPP
symbolicatecrash 卡住了。
我试图 运行 像这样:
symbolicatecrash -v crash.txt MYAPP
执行永远不会结束。它过去曾经工作,但现在(Xcode 7 和 8)它被卡住了。
请问有解决办法吗?
解决方法如下:
深入的细节出现在这里:iOS9: duplicated lines in crash reports are causing symbolicatecrash to get stuck
快速解决方案是编辑此 perl 脚本(Xcode 8 中的新位置!):
/Applications/Xcode.app//Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
现在搜索 defined($images{$bundlename})
并在其后添加 next;
,如下所示:
if ( defined($images{$bundlename}) ) {
next;
就这些了!
一些非常有用的符号提示:
对于符号化,您需要 3 个文件:
带有崩溃报告的文本文件:以
Incident Identifier:
开头,以0x1974d0000 - 0x1974f3fff libxpc.dylib arm64 <ad580443238d39978d09004c210d0c18> /usr/lib/system/libxpc.dylib
结尾
应用程序文件夹,名为 MYAPP.app(Finder 隐藏了 .app 扩展名)。如果你有应用程序的 IPA,解压它,它会希望 Payload 文件夹。
编译时Xcode生成的dSYM文件夹。
您应该将 dSYM 文件夹重命名为 MYAPP.app.dSYM,并将所有三个文件放在同一文件夹中。
三个必须有相同的UUID。要验证您是否可以使用以下命令(我通过 运行 brew install gnu-sed
得到 gsed
):
应用的 UUID:
dwarfdump --uuid MYAPP.app/MYAPP
符号的 UUID:
dwarfdump --uuid MYAPP.app.dSYM
UUID od 崩溃:cat crash.txt | grep -A 1 "Binary Images:" | gsed -r -n -e 's_.*<([0-9a-z]{8})([0-9a-z]{4})([0-9a-z]{4})([0-9a-z]{4})([0-9a-z]{12}).*_----_p' | awk '{print toupper([=20=])}'
现在,如果它们都匹配相同的 UUID,您可以:
symbolicatecrash -v crash.txt MYAPP