參考文章:http://www.qingpingshan.com/rjbc/ios/230949.html
1.桌面新建一個文件夾,自行命名(crash);
2.找到Xcode的位置,右鍵"顯示包內容",根據以下目錄找到symbolicatecrash工具:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash,並拷貝出來,放到剛才創建的(crash)文件夾中;
3.把蘋果審核返回的崩潰日志下載,也放到剛才創建的crash文件夾中;
4.打開Xcode,選擇Window-->Orgianzer找到對應的Archive文件,
點擊右邊的Download dSYMS,
如果提示 No dSYMs were found for Version xxx Build xxx ,
可以右鍵點擊對應的Archive文件,show in finder,然后右鍵顯示包內容,找到dSYMs文件夾下的對應dYSMs文件,拷貝到剛才的文件夾下;
如果文件夾為空,那么就要去檢查Xcode設置,在Xcode --> Build Setting 搜索 "debug information format",將"DWARF"修改為"DWARF with dSYM File",之后重新打包就可以找到了;
5.打開終端,進入剛才的文件夾(cd 你自己的剛才創建的文件夾路徑)
cd /Users/xxx/desktop/crash
6.接着輸入以下命令
./symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash.log
注:crash.txt為蘋果返回的崩潰日志的名字,MyAppName.app.dSYM為你自己拷出來的dSYM文件的名字,crash.log為你要輸入的日志文件的名字
執行命令之前的crash文件夾內(上面三個txt格式的為蘋果返回的崩潰日志文件)
執行命令之后(.crash文件為生成的日志文件)
7.如果提示"DEVELOPER_DIR" is not defined at xxxxxxxxxxxxxx,那么輸入以下命令,如果沒有則跳過
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
8.然后重新輸入第6步的命令
./symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash.log
9.打開日志文件進行分析
10.根據提示找到SportMainController中的onReGeocodeSearchDone方法
11.發現是在else中截取字符串時出現問題,有可能字符串長度為0,這樣substringToIndex:-1就導致程序崩潰了,加一個判斷條件,問題解決
(PS:不會排版圖片,看起來有點亂,請見諒Orz)