最近頻繁的在向Appstore提交新版本虐译,在連續(xù)同樣的問題被拒了3次了胞谭,而根據(jù)蘋果給出的crash log,當你點開iTuenes Center的解決方法中心也許看到的就是這樣
大致意思的就是:
嘿~昭齐,小哥,你的App里面存在著閃退券腔,crash log已經(jīng)在下面了,你自己看著辦吧拘泞,如果有技術上的難題纷纫,可以來找我們溝通哦~
然后給了你幾個.crash的文件。于是田弥,你雞凍的點開了crash log去查看
臥槽涛酗,臥槽,臥槽M迪谩I烫尽!只泼!
這特么什么鬼F鼠稀!G氤弥咪!
完全看不明白,這時候boss又來催了十绑,為什么iOS APP還沒上線聚至?你頓時心里的就方了,自己測試的時候根本不知道閃退在哪本橙,看這個東西又找不到具體的問題所在扳躬,繼續(xù)提交肯定是還是會被拒,怎么辦甚亭,怎么辦.......
如果這時候你已經(jīng)在看這篇文章了贷币,那么恭喜你,淡定一點亏狰,不要著急役纹,聽我慢慢道來。
首先
你要知道這個crash log本來就不是人可以看懂的東西暇唾,那么怎么讓自己能看懂呢促脉?【符號化】 使用【symbolicatecrash】這個工具來符號化,這是一個Xcode內(nèi)置的工具
打開終端輸入以下命令查找symbolicatecrash的位置:
find /Applications/Xcode.app -name symbolicatecrash -type f
這個時候會得到一個文件路徑策州,將這個路徑中的symbolicatecrash 復制到你的桌面的crashtemp文件夾中
cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /Users/你的電腦用戶名字/Desktop/crashtemp
然后
把iTuenes Center的解決方案中心.crash文件下載下來瘸味,復制到crashtemp文件夾中。
再然后
找到dSYM文件抽活,第一步:Xcode中window-->Organizer
第二步:選擇對應的包,右鍵顯示包內(nèi)容
第三步:進入dSYMs文件夾锰什,將.dSYM文件同樣復制到桌面的crashtemp文件夾中
dSYM文件
困惑:
如果這個時候進來發(fā)現(xiàn)這個文件夾里面是空的下硕,那么丁逝,恭喜你,請點擊上面的叉叉吧/(ㄒoㄒ)/~~(開完笑)梭姓,如果這個文件夾里面是空的話霜幼,那么你在上傳AppStore的時候,應該是用的Application Loader這個工具上傳的誉尖,這個東西雖然在網(wǎng)絡比較不穩(wěn)定的情況下比在Xcode中上傳要好一些罪既,但是,它并不能為你生成sYSM文件铡恕,所以琢感,現(xiàn)在你必須找到提交Appstore時候的版本(論版本控制的重要性),用同一臺電腦然后重新打包一個版本探熔,使用Xcode重新上傳到Appstore,如下圖操作驹针,再UpLoad to App Store。
1)修改一下配置:Build Settings-->搜dsym 選項改為DWARF with dSYM file
2)再進行打包:
這樣,如果還沒有dSYM文件的話诀艰,旁邊還有個download dSYMs文件的按鈕柬甥,點擊,可以下載一個dSYM文件其垄,有了所有的文件后苛蒲,準備工作就算做好了。現(xiàn)在看看桌面的crashtemp文件夾,三個文件已經(jīng)就位
重點來了:
這時候绿满,打開終端臂外,進入crashtemp文件夾,輸入命令:
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer?
然后在輸入:
./symbolicatecrash /Users/你的電腦用戶名/Desktop/crashtemp/temp.crash /Users/你電腦的用戶名/Desktop/carshtemp/xxxx(dSYM文件名字).dSYM > Control_symbol.txt
這個時候crashtemp文件夾中就會多出一個.txt的文本文件
打開查看:
這個時候可以看到棒口,里面的信息至少是我們可以看得懂的了寄月,這樣就能準確的找到App crash的問題所在了
總結(jié)
1、找到 symbolicatecrash
2无牵、下載iTunes center的crash log文件
3漾肮、獲取到dSYM文件
4、三個文件放一個文件夾里面茎毁,輸入命令進行crash log符號化克懊,得到符號化后的文件
5、查看符號化的后crash log文件七蜘,找到準確的問題所在
注意:
版本谭溉,版本,版本橡卤,Archive的包扮念,如果是上傳到Appstore了的,一定要記得備份碧库,如果被誤刪掉了柜与,或者使用Application Loader上傳的Appstore 巧勤,那么記得拿到上傳這個版本時的源碼更改一下版本重新打包,使用Xcode重新上傳一次弄匕,還有必須得在同一臺電腦上面颅悉。
最后,還是祝愿大家能夠順利通過審核迁匠,最好不要有用到這個東西的時候剩瓶,畢竟每一次上線,都是一個漫長的等待過程城丧,能在上線前延曙,多測測,把這個概率降到最低是最好不過的了芙贫。(而我搂鲫,根本就沒有測試。磺平。魂仍。)