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)都可以分析内存情况