当前位置: 首页 > 后端技术 > Java

CrashSight接入和上报常见问题及解决方法

时间:2023-04-01 14:39:57 Java

CrashSight为全平台(手机/PC/主机)开发者提供崩溃异常捕获、上报、分析、规避解决方案等全链路闭环专业服务。帮助开发者快速定位和解决异常问题,降低产品崩溃率,提升用户体验。国内:https://crashsight.qq.com海外/海外:https://crashsight.wetest.net今天,我们整理了使用CrashSight访问和上报过程中遇到的常见问题:1iOS接入,上报FAQ1.1接入SDK后不报crash●检查AppId是否设置正确;●SDK初始化是否在Crash前完成;●网络是否可用;CrashSight的流量保护机制,请卸载应用再测试(不会影响真实用户Crash的准确性)●是否有其他第三方组件具有捕获Crash的功能,包括但不限于firebase/fackbook/google移动广告。某些情况下,可能会出现兼容性问题。如果使用了以上组件,请联系管理员协助。●是否是触发了iOS的强查杀机制导致的崩溃。系统强制杀,APP里没有处理时间,也报不了。触发条件主要是长时间卡顿(大概5s以上),或者一定时间内CPU/GPU/内存使用率过高等。1.2为什么上传符号表需要java环境●我们的符号表提取工具依赖在java环境下,符号表工具只提取必要的信息。1.3符号表上传失败,uuid不匹配。●每次build,符号表的uuid都会变化,所以需要用当前build生成的符号表文件来恢复当前build后上传的crash。1.4依赖库后缀不同,如:libc++.dylib和libc++.tbd●iOSSDK9.0以上编译时添??加依赖库libc++.tbd,9.0以下版本添加libc++.dylib1.5有什么作用●iOSSDK:用于收集iOSApp的崩溃和卡顿,统计App运行数据等CocosPlugin:用于收集基于Cocos引擎的App的崩溃和脚本错误UnityPlugin:用于收集崩溃在基于Unity引擎的应用中,脚本错误等。●UnrealPlugin:用于收集基于Unreal引擎的应用中的崩溃和脚本错误。2Android接入及上报FAQ2.1开发中如何查看CrashSight的Logcat日志●参考参数配置、初始化、设置Debug模式为True。2.2为什么同样的用户每天报告数百次崩溃?会不会消耗用户流量?●单个用户上报有流量限制,CrashSight会在达到流量限制前正常上报。2.3是否需要为每个版本配置符号表?●是的。2.4不配置恢复符号表会影响异常上报吗?会有什么影响?●恢复符号表的配置不会影响上报。●如果不配置,网页只会显示原来的崩溃堆栈,不利于崩溃的排查。2.5接入SDK后不报crash●检查AppId是否设置正确;●SDK初始化是否在Crash前完成;●网络是否可用;保护机制请卸载app再测试(不会影响真实用户Crash的准确性)●是否有其他第三方组件具有抓取Crash的功能,包括但不限于firebase/fackbook/谷歌移动广告。在某些情况下会出现兼容性问题。如果使用了以上组件,请联系管理员协助。●是否因为内存不足被系统强行杀掉(这种情况多发生在低端机上,而且往往是死机到死才出现)。3WindowsSDK接入,常见问题报无法报crash:请依次检查以下情况?检查dll是否正确加载;?检查setTQMConfig函数是否已经执行;/raise不支持崩溃);?初始化后,是否有TQMCenter.exe进程在运行;?TQM64/GameBabyConfig.dat文件与dll同级的GameBabyConfig.dat文件是否一致。?crash后,是否在TQM64/dump下生成dmp文件,如果没有,请查看1-3?crash后,生成dmp,但“CrashAnalysis”页面没有报告,请查看4-5?如果1-7都没有问题,还是没有报crash,请在两个配置文件中添加如下配置。将appid替换成项目的appid(release版本一定要删除这个配置,否则会导致信息泄露)。替换完成后,运行创建crash,将两个GBLog文件夹下的log文件发送给CrashSight开发,手动协助排查appid4UnitySDK常见问题。4.1初始化SDK后,为什么抓不到异常并上报给C#?A。检查是否有其他注册Application.RegisterLogCallback(LogCallback)的逻辑。由于默认的LogCallback是单播实现的,所以只能维护一个回调实例。您可以调用CrashSightAgent.RegisterLogCallback(CrashSightAgent.LogCallbackDelegate)方法来替换日志回调b。检查相应平台的SDK组件是否已经集成到项目中d.检查测试用的crash是否在代码中捕获在CrashAnalysis->SingleCrash->SymbolTable页面,可以看到符号表文件已经上传。(Java符号表文件可以忽略)?请确认上传的符号表不是原始so文件,而是经过处理的符号表。请参考【符号表上传工具及使用说明】(https://wetest.qq.com/help/do...)或【符号表蓝盾插件自动上传】(https://wetest.qq.com/帮助/做...)。?请确认上一步上传的so文件是签名文件。Unity专用引擎的libunity.so通常是无符号的,需要使用engine目录下的libunity.sym.so文件或编译时生成。5.2iOS堆栈未恢复?与Android类似,请确认符号表已上传,在CrashAnalysis->SingleCrash->SymbolTable页面可以看到符号表文件已经上传。?项目崩溃未使用的模块,如Foundation模块等,是系统模块。系统模块的符号表由CrashSight管理。只有一些很旧的版本,以及上线时间很短的版本可能无法恢复。其他版本恢复问题,请联系管理员。5.3恢复在确保符号表已经上传后,您可以通过点击“重试恢复堆栈”来恢复堆栈。5.4Unreal回调函数returnTCHAR_TO_UTF8(*message)TCHAR_TO_UTF8的宏定义由于函数参数的原因只能分配在栈上,不足128字节分配在栈上,大于128字节分配在堆上;如果大于128字节,分号结束后会立即释放堆。生成野指针;正确用法:写在最后:CrashSight为开发者提供异常捕获、报告和分析服务。帮助开发者快速定位和解决异常问题,降低产品崩溃率,提升用户体验。支持所有移动/PC/主机平台,主要包括:平台:?Mobile:iOS,Android?PC:Windows?Host:NintendoSwitch,PS4,XBOX语言:?C/C++/C#,Java,Object-C/Swiftengine:?Unity,UE4,Cocos马上去官网:国内:https://crashsight.qq.com海外:https://crashsight.wetest.net