1.代码注入
真机调试时,重新出包耗费时间较久
若代码编译为dll,可以直接替换dll调试
若使用InjectFix,可以在PC端生成patch后替换补丁调试
若使用hclr,同理可以替换文件调试
以上是安卓、模拟器适用方案
对于IOS不易访问app相关目录
为了使热更下载目录可以查看
可以在plist文件中添加LSSupportsOpeningDocumentsInPlace和UIFileSharingEnabled属性,并设置为“YES”
2.报错与崩溃信息分类处理
需要注意await报错的特点,堆栈上通常看不到await上方的语句
其余详见《Unity客户端典型异常日志分析》
https://www.cnblogs.com/billyrun/articles/18198264
3.安卓崩溃进一步分析工具add2line
https://www.jianshu.com/p/73efa6f06f32
4.正式环境测试环境导号
需要服务端支持,便于解决线上玩家遇到的特殊问题
5.安卓、ios真机日志抓取方法
安卓连接Android Studio查看Logcat窗口获得实时日志
或命令行adb logcat >D:\log.txt 保存设备内日志
设备遇到报错后再链接usb查看Logcat,仍然可以看到此前一段时间的报错信息
IOS查看log需要在xcode中Window
> Devices and Simulators选择设备
然后在控制台输出查看日志(需要设置过滤)
若在xcode直接生成player到测试机上,也可以直接在xcode内看到更详细的日志
6.异常捕获第三方SDK的使用
常用的又bugly、crashsight、firebase等等
不仅可以收集报错、崩溃信息
也可以自定义收集信息如手动打印的Debug.LogError
7.AB模式模拟手机包
常用的debug技术之一,当编辑器下正常,手机包异常时
可以将PlayerSetting切换至Android,然后加载AB文件运行编辑器
往往就能在编辑器下复现手机上的异常情况
可能需要设置渲染模式从DX->OpenGL
https://zhuanlan.zhihu.com/p/417024946?utm_id=0
8.内存调试技巧
adb shell
memory profiler(hclr模式下取消managed勾选)
以及第三方工具(UPR UWA PerfDog)都可以分析内存情况