乐趣区

关于java:CrashSight-接入上报常见问题及解决方案

CrashSight 为全平台(挪动 /PC/ 主机)开发者提供解体异样捕捉、上报、剖析和躲避计划等全链路闭环业余服务。帮忙开发者疾速定位并解决异样问题,升高产品解体率,晋升用户体验。
国内:https://crashsight.qq.com
出海 / 海内:https://crashsight.wetest.net
明天给大家整顿了在应用 CrashSight 在接入、上报过程中遇到的常见问题:

1 iOS 接入、上报常见问题

1.1 接入 SDK 后解体没有上报
● 查看 AppId 是否设置正确;
● SDK 的初始化是否在 Crash 之前实现;
● 网络是否可用;
● 在测试时若之前有上报忽然不上报了,可能是触发了 CrashSight 的流量爱护机制,请卸载 App 后再测试(并不会影响实在用户 Crash 准确率)
● 是否有应用具备捕捉 Crash 性能的其余第三方组件,包含然而不限于 firebase/fackbook/google mobile ads. 某些状况下会存在兼容问题,如果应用了上述组件,请分割管理人员帮助解决。
● 是否是触发了 iOS 的强杀机制导致的解体。零碎强杀,APP 内没有解决工夫,无奈上报。次要触发条件为长时间卡顿(约 5s 以上),或者肯定工夫内 CPU/GPU/ 内存占用过低等状况。
1.2 上传符号表为什么须要 java 环境
● 咱们符号表提取工具依赖于 java 环境,符号表工具只提取必要的信息。
1.3 符号表上传失败提醒 uuid 不匹配
● 每次构建,符号表的 uuid 都会产生扭转,所以须要当次构建生成的符号表文件能力还原当次构建后上传的 crash。
1.4 依赖库后缀名不同如:libc++.dylib 与 libc++.tbd
● 应用 iOS SDK 9.0 以上编译时增加依赖库 libc++.tbd,9.0 以下增加 libc++.dylib
1.5 不同 SDK 的性能都有哪些
● iOS SDK:用于收集 iOS App 的解体、卡顿,统计 App 的经营数据等
● Cocos Plugin:用于收集基于 Cocos 引擎的 App 中的解体,脚本谬误等
● Unity Plugin:用于收集基于 Unity 引擎的 App 中的解体,脚本谬误等
● Unreal Plugin:用于收集基于 Unreal 引擎的 App 中的解体,脚本谬误等

2 Android 接入、上报常见问题

2.1 开发过程中怎么查看 CrashSight 的 Logcat 日志
● 参考参数配置,初始化时,设置调试模式为 True。
2.2 为什么雷同的用户一天上报了几百条 Crash?会耗费用户流量吗?
● 繁多用户的上报是有流量限度的,在达到流量限度之前 CrashSight 都会失常上报。
2.3 每个版本都要配置符号表吗
● 是的。
2.4 不配置还原符号表会影响异样上报吗?会有什么影响?
● 还原符号表的配置并不会影响上报。
● 如果没有配置,网页端将只能显示原始的解体堆栈,不利于解体问题排查。
2.5 接入 SDK 后解体没有上报
● 查看 AppId 是否设置正确;
● SDK 的初始化是否在 Crash 之前实现;
● 网络是否可用;
● 在测试时若之前有上报忽然不上报了,可能是触发了 crashsight 的流量爱护机制,请卸载 App 后再测试(并不会影响实在用户 Crash 准确率)
● 是否有应用具备捕捉 Crash 性能的其余第三方组件,包含然而不限于 firebase/fackbook/google mobile ads. 某些状况下会存在兼容问题,如果应用了上述组件,请分割管理人员帮助解决。
● 是否因为内存不足而被零碎强杀(这种状况常产生在低端机,产生前往往极度卡顿)。

3 Windows SDK 接入、上报常见问题

  1. 无奈上报解体:请顺次查看下列状况
    ⦁ 查看 dll 是否正确加载;
    ⦁ 查看 setTQMConfig 函数是否曾经执行;
    ⦁ 制作的解体是否属于 CrashSight 反对的范畴(特地留神的是,throw/raise 类型的解体,不属于反对范畴内);
    ⦁ 初始化之后,是否有 TQM Center.exe 过程运行;
    ⦁ TQM64/GameBabyConfig.dat 文件是否与 dll 同级的 GameBabyConfig.dat 文件内容统一。
    ⦁ 解体产生后,是否在 TQM64/dump 下生成 dmp 文件,如无,请查看 1 -3
    ⦁ 解体产生后,生成了 dmp,然而在“解体剖析”页面没有看到上报,请查看 4 -5
    ⦁ 如果 1 - 7 均无问题,还是没有解体上报,请在 2 个配置文件中增加下列配置。替换 appid 为我的项目 appid(请务必在公布版本中删除该配置,否则会导致信息泄露)。替换后运行制作解体,将两个 GBLog 文件夹下的 log 文件发给 CrashSight 开发,人工帮助排查问题
    <LogOutput>appid</LogOutput>

    4 Unity SDK 常见问题.

    4.1 初始化 SDK 后,为什么依然无奈捕捉上报 C# 异样?
    a. 查看是否有其余存在注册 Application.RegisterLogCallback(LogCallback)的逻辑,因为零碎默认 LogCallback 是单播实现,所以只能维持一个回调实例,你能够调用 CrashSightAgent.RegisterLogCallback(CrashSightAgent.LogCallbackDelegate)办法来代替日志回调的注册;
    b. 查看对应平台的 SDK 组件是否曾经集成到我的项目中
    d. 查看测试用的解体是否被代码外部捕捉了

    5 还原常见问题

    5.1 安卓堆栈未还原
    ⦁ 请确认曾经上传符号表,并且能够在解体剖析 -> 单条解体 -> 符号表页面看到符号表文件已上传。(Java 符号表文件能够不必关注)
    ⦁ 请确认上传的符号表不是原始的 so 文件,而是通过解决的符号表。解决上传办法请查看[符号表上传工具及应用阐明](https://wetest.qq.com/help/do…)或者[符号表蓝盾插件自动化上传](https://wetest.qq.com/help/do…)。
    ⦁ 请确认上一步上传的 so 文件为带符号的文件。特地的 Unity 引擎的 libunity.so 通常是不带符号的,须要应用引擎目录下或者编译过程中的的 libunity.sym.so 文件进行制作。
    5.2 iOS 堆栈未还原
    ⦁ 与安卓相似, 请确认曾经上传符号表,并且能够在解体剖析 -> 单条解体 -> 符号表页面看到符号表文件已上传。
    ⦁ 非我的项目应用的模块解体,例如 Foundation 模块等,均为零碎模块。零碎模块的符号表由 CrashSight 对立治理,只有一些很旧的版本,上线工夫极短的版本可能不会被还原,其余版本还原问题可与管理员分割。
    5.3 重还原
    当确保符号表已上传后,能够通过点击“重试还原堆栈”对堆栈进行从新还原。
    5.4 Unreal 回调函数 return TCHAR_TO_UTF8(*message)
    TCHAR_TO_UTF8 宏定义只能因为函数参数,小于 128 字节在栈调配,大于 128 字节在堆调配;如果大于 128 字节,分号完结后,堆立刻开释,产生野指针;正确用法:

写在最初:

CrashSight 为开发者提供异样捕捉,上报和剖析服务。帮忙开发者疾速定位并解决异样问题,升高产品解体率,晋升用户体验。反对挪动 /PC/ 主机全平台,次要包含:
平台:
⦁ 挪动端:iOS、Android
⦁ PC 端:Windows
⦁ 主机端:Nintendo Switch、PS4、XBOX
语言:
⦁ C/C++/C#、Java、Object-C/Swift
引擎:
⦁ Unity,UE4,Cocos
立即返回官网:
国内:https://crashsight.qq.com
出海 / 海内:https://crashsight.wetest.net

退出移动版