游戲開啟技術(shù)測試前反璃,還總有那么一些崩潰問題不好排查麸塞,“逼不得已”才抽出時間來接入Crasheye秃臣,用以收集崩潰信息。
現(xiàn)在有不少收集崩潰的平臺,但感覺對UE4的支持都很弱奥此,Crasheye的UE4 Plugin也是剛推出不久弧哎,即使在Test+官方的Crasheye產(chǎn)品頁上都沒有提及這個插件,建應(yīng)用的過程中也只展示了Unity稚虎,只能在SDK下載中能看見UE4插件的身影撤嫩。我也是通過UE4收集崩潰日志這篇文章了解到的。
一開始主要精力集中在Android應(yīng)用上蠢终,基本按官方的流程來就ok了序攘,前期是開發(fā)同事弄的,所以遇到啥坑我也不清楚寻拂。
比較倒霉的是我們接入的前兩天正好遇到他們服務(wù)器出問題程奠,收集到的信息沒法在網(wǎng)頁端正常查看,還好加了他們QQ群與專人進行了溝通祭钉,他們也及時修復(fù)了問題瞄沙。
這兩天又在折騰IOS應(yīng)用,算是被小坑了一下慌核,總得來說不管是Android還是IOS距境,操作難點都在符號文件。
符號文件垮卓,簡單的可以理解為包含了調(diào)試信息的文件垫桂,通過它可將看不懂的堆棧信息解析出來。
如果沒有符號文件的話粟按,查看對應(yīng)崩潰信息時诬滩,看到的堆棧是這樣的:
網(wǎng)頁上方也會提示:
每測試一個版本的包,我們都需要上傳其對應(yīng)的符號文件钾怔。
總結(jié)下操作就是:
找到符號文件 - 用官方工具生成zip壓縮包 - 上傳符號文件zip包碱呼!
難點就在符號文件從哪找 ╮(╯▽╰)╭
Android
開發(fā)用到的是c++,所以可以參考Android NDK 使用指南宗侦。
Android的就是要找到*.so文件愚臀,將apk包擴展名改為zip,在壓縮包的lib/armeabi-v7a
目錄下即為應(yīng)用的so文件:
一般用到libUE4.so
矾利,只有一次用到過libgnustl_shared.so
姑裂,將他們解壓出來分別打包上傳就可以正常解析了:
打包命令參考:
java -jar CrasheyeAndroidSymbol.jar -disableUpload libUE4.so
IOS
IOS的找起來就麻煩點了,由于沒有IOS開發(fā)經(jīng)驗男旗,一開始完全是蒙的舶斧。
唯一的參考也就是iOS SDK 使用指南了,至少讓我知道了應(yīng)該去找*.dSYM相關(guān)的東西察皇。
指南里說明的是常規(guī)Xcode里IOS項目的獲取方式茴厉,UE打包出來的嘞T筇ā?
還好很快找到了目標矾缓,通過搜索在IOS打包選項里發(fā)現(xiàn)了相關(guān)項:
字面意思基本理解怀酷,但具體什么情況使用,會有什么效果也只能靠試了嗜闻。
按猜測我只勾選了第二個選項Gengeate dSYM bundle for thired party crash tools
蜕依,打包完成后在Binaries\IOS
目錄下會有這么一個文件:
就是以壓縮包的形式出現(xiàn)的,直接當作符號文件上傳琉雳,不對样眠!會提示:
還非得用官方的工具才行,而且還得有些小的修改翠肘。
針對Shipping包需要將*.dSYM.zip解壓出來:
- 改文件夾名
GShooter-IOS-Shipping.dSYM
為GShooter.dSYM
- 如有必要打開Info.plist文件檐束,將
CFBundleVersion
的值修改為對應(yīng)的版本號 - 改最里層的文件名
GShooter-IOS-Shipping
為GShooter
再使用工具打包上傳即可,目前只簡單測試了一個版本锯茄,看著解析正常了厢塘,以后有啥問題再補充茶没!
打包命令參考:
java -jar CrasheyeIOSSymbol.jar -disableUpload GShooter.dSYM