游戏开启技术测试前,还总有那么一些崩溃问题不好排查,“逼不得已”才抽出时间来接入Crasheye,用以收集崩溃信息。

现在有不少收集崩溃的平台,但感觉对UE4的支持都很弱,Crasheye的UE4 Plugin也是刚推出不久,即使在Test+官方的Crasheye产品页上都没有提及这个插件,建应用的过程中也只展示了Unity,只能在SDK下载中能看见UE4插件的身影。我也是通过UE4收集崩溃日志这篇文章了解到的。

87d9aac00275

一开始主要精力集中在Android应用上,基本按官方的流程来就ok了,前期是开发同事弄的,所以遇到啥坑我也不清楚。

比较倒霉的是我们接入的前两天正好遇到他们服务器出问题,收集到的信息没法在网页端正常查看,还好加了他们QQ群与专人进行了沟通,他们也及时修复了问题。

这两天又在折腾IOS应用,算是被小坑了一下,总得来说不管是Android还是IOS,操作难点都在符号文件。

符号文件,简单的可以理解为包含了调试信息的文件,通过它可将看不懂的堆栈信息解析出来。

如果没有符号文件的话,查看对应崩溃信息时,看到的堆栈是这样的:

87d9aac00275

Android

87d9aac00275

IOS

网页上方也会提示:

87d9aac00275

Android

87d9aac00275

IOS

每测试一个版本的包,我们都需要上传其对应的符号文件。

87d9aac00275

总结下操作就是:

找到符号文件 - 用官方工具生成zip压缩包 - 上传符号文件zip包!

难点就在符号文件从哪找 ╮(╯▽╰)╭

Android

开发用到的是c++,所以可以参考Android NDK 使用指南。

87d9aac00275

Android的就是要找到*.so文件,将apk包扩展名改为zip,在压缩包的lib/armeabi-v7a目录下即为应用的so文件:

87d9aac00275

一般用到libUE4.so,只有一次用到过libgnustl_shared.so,将他们解压出来分别打包上传就可以正常解析了:

87d9aac00275

打包命令参考:

java -jar CrasheyeAndroidSymbol.jar -disableUpload libUE4.so

IOS

IOS的找起来就麻烦点了,由于没有IOS开发经验,一开始完全是蒙的。

唯一的参考也就是iOS SDK 使用指南了,至少让我知道了应该去找*.dSYM相关的东西。

87d9aac00275

指南里说明的是常规Xcode里IOS项目的获取方式,UE打包出来的嘞!?

还好很快找到了目标,通过搜索在IOS打包选项里发现了相关项:

87d9aac00275

字面意思基本理解,但具体什么情况使用,会有什么效果也只能靠试了。

按猜测我只勾选了第二个选项Gengeate dSYM bundle for thired party crash tools,打包完成后在Binaries\IOS目录下会有这么一个文件:

87d9aac00275

就是以压缩包的形式出现的,直接当作符号文件上传,不对!会提示:

87d9aac00275

还非得用官方的工具才行,而且还得有些小的修改。

针对Shipping包需要将*.dSYM.zip解压出来:

改文件夹名GShooter-IOS-Shipping.dSYM为GShooter.dSYM

如有必要打开Info.plist文件,将CFBundleVersion的值修改为对应的版本号

改最里层的文件名GShooter-IOS-Shipping为GShooter

再使用工具打包上传即可,目前只简单测试了一个版本,看着解析正常了,以后有啥问题再补充!

87d9aac00275

打包命令参考:

java -jar CrasheyeIOSSymbol.jar -disableUpload GShooter.dSYM

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐