游戏开启技术测试前,还总有那么一些崩溃问题不好排查,“逼不得已”才抽出时间来接入Crasheye,用以收集崩溃信息。
现在有不少收集崩溃的平台,但感觉对UE4的支持都很弱,Crasheye的UE4 Plugin也是刚推出不久,即使在Test+官方的Crasheye产品页上都没有提及这个插件,建应用的过程中也只展示了Unity,只能在SDK下载中能看见UE4插件的身影。我也是通过UE4收集崩溃日志这篇文章了解到的。
一开始主要精力集中在Android应用上,基本按官方的流程来就ok了,前期是开发同事弄的,所以遇到啥坑我也不清楚。
比较倒霉的是我们接入的前两天正好遇到他们服务器出问题,收集到的信息没法在网页端正常查看,还好加了他们QQ群与专人进行了沟通,他们也及时修复了问题。
这两天又在折腾IOS应用,算是被小坑了一下,总得来说不管是Android还是IOS,操作难点都在符号文件。
符号文件,简单的可以理解为包含了调试信息的文件,通过它可将看不懂的堆栈信息解析出来。
如果没有符号文件的话,查看对应崩溃信息时,看到的堆栈是这样的:
网页上方也会提示:
每测试一个版本的包,我们都需要上传其对应的符号文件。
总结下操作就是:
找到符号文件 - 用官方工具生成zip压缩包 - 上传符号文件zip包!
难点就在符号文件从哪找 ╮(╯▽╰)╭
Android
开发用到的是c++,所以可以参考Android NDK 使用指南。
Android的就是要找到*.so文件,将apk包扩展名改为zip,在压缩包的lib/armeabi-v7a
目录下即为应用的so文件:
一般用到libUE4.so
,只有一次用到过libgnustl_shared.so
,将他们解压出来分别打包上传就可以正常解析了:
打包命令参考:
java -jar CrasheyeAndroidSymbol.jar -disableUpload libUE4.so
IOS
IOS的找起来就麻烦点了,由于没有IOS开发经验,一开始完全是蒙的。
唯一的参考也就是iOS SDK 使用指南了,至少让我知道了应该去找*.dSYM相关的东西。
指南里说明的是常规Xcode里IOS项目的获取方式,UE打包出来的嘞!?
还好很快找到了目标,通过搜索在IOS打包选项里发现了相关项:
字面意思基本理解,但具体什么情况使用,会有什么效果也只能靠试了。
按猜测我只勾选了第二个选项Gengeate dSYM bundle for thired party crash tools
,打包完成后在Binaries\IOS
目录下会有这么一个文件:
就是以压缩包的形式出现的,直接当作符号文件上传,不对!会提示:
还非得用官方的工具才行,而且还得有些小的修改。
针对Shipping包需要将*.dSYM.zip解压出来:
- 改文件夹名
GShooter-IOS-Shipping.dSYM
为GShooter.dSYM
- 如有必要打开Info.plist文件,将
CFBundleVersion
的值修改为对应的版本号 - 改最里层的文件名
GShooter-IOS-Shipping
为GShooter
再使用工具打包上传即可,目前只简单测试了一个版本,看着解析正常了,以后有啥问题再补充!
打包命令参考:
java -jar CrasheyeIOSSymbol.jar -disableUpload GShooter.dSYM