11/08/2024 16:35:54
Bugly 渠道说明
二、开发者平台配置
2.1 注册账号
打开 Bugly 官网,选择 QQ 登录。
2.2 新增应用
- 点击右上角菜单栏,我的产品。
- 点击新建应用
2.3 配置应用
新建应用后,在产品页面根据需求填入必须内容即可。
2.4 其他步骤
配置完成后,获取应用的 APP ID
三、 Android工程配置
3.1 权限配置
【必选】权限列表
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
[info] 注意
READ_PHONE_STATE
为敏感权限,主要用于设备获取标识
READ_LOGS
为敏感权限,主要用于读取设备日志
3.2 App ID 配置
在工程文件 assets/MSDKConfig.ini 中添加配置
[Bugly 调试配置]
MSDK_DEBUG = 1
MSDK_DEBUG_CHANNEL = Bugly
[Bugly 渠道配置]
BUGLY_APP_ID_ANDROID = {BUGLY_APP_ID_ANDROID}
# 【可选配置】
# 屏蔽 error 类型的回调,其他类型的回调正常触发上报,默认关闭,此配置只在 Android 有
BUGLY_CLOSE_ERROR_CALLBACK_ANDROID = 0
[info]
1.将
{BUGLY_APP_ID_ANDROID}
改成游戏在 Bulgy 平台的ID,可以在 飞鹰系统 ->SDK 参数处找到。 2.{MSDK_DEBUG}
1 表示打开调试模式,0 表示关闭调试模式
3.{MSDK_DEBUG_CHANNEL}
此开关设置为 Bugly ,表示开启 Bugly 调试,仅当{MSDK_DEBUG}
为1时,此开关生效,在同一配置文件中
4.{BUGLY_CLOSE_ERROR_CALLBACK_ANDROID}
1 表示屏蔽 error 类型的回调,0 表示不屏蔽。5.10 版本新增。
3.3 【可选】App 版本号配置
MSDK 默认读取业务的 versionName 和 versionCode 作为 Bugly 的 App 版本号,如果业务需要自定义版本号,需要在工程文件 assets/MSDKConfig.ini 中添加配置
[Bugly 渠道配置]
BUGLY_APP_VERSION = {YOUR_BUGLY_APP_VERSION}
[info]
1.将
{YOUR_BUGLY_APP_VERSION}
改成游戏自定义的 App 版本号
2.MSDK 将忽略 AndroidManifest.xml 中游戏自定义的BUGLY_APP_VERSION
配置
四、 iOS工程配置
4.1 MSDK 环境配置
在工程中找到 MSDKAppSetting.bundle/MSDKConfig.ini 文件,增加如下配置
[Bugly 渠道配置]
BUGLY_APP_ID_IOS = {BUGLY_APP_ID_IOS}
# 【可选配置】
# 非正常退出事件记录开关,默认关闭,此配置只在 iOS 有
BUGLY_UNEXPECTED_TERMINATE_DETECTION_ENABLE_IOS = 0
# 卡顿监控开关,默认关闭;如若开启,需配置卡顿监控判断间隔,单位为秒;此配置只在 iOS 有
BUGLY_BLOCK_MONITOR_ENABLE_IOS = 1
BUGLY_BLOCK_MONITOR_TIMEOUT_IOS = 3
4.2 系统库依赖
+ SystemConfiguration.framework
+ Security.framework
+ libz.dylib 或 libz.tbd
+ libc++.dylib 或 libc++.tbd
五、功能说明
5.1 异常上报功能
示例代码详见 异常上报模块,对应其中的 Bugly 渠道。
[info] Bugly 的自定义日志打印接口存在 Android/iOS 逻辑不一致问题,Bugly Android 不支持 silent 级别的日志上报,但 iOS 支持。使用时需要注意。
1)上报信息介绍
①上报 crash 进程的堆栈,包括出错堆栈、系统日志等;
②上报当前手机的基本信息,包括设备名称(厂商,型号)、系统版本、磁盘可用占比、SD卡可用占比、内存可用占比等;
③上报用户的 openid,如下图的“用户 ID”所示。默认上报的用户 ID 是 MSDK openid,也支持设置自定义用户 ID。
④用户自定义上报信息
A.可以自定义应用在 crash 时上报的日志,如下图所示,在“跟踪日志”选择“自定义日志”查看:
B.可以设置关键数据键值对,随崩溃信息上报。如下图所示,在“跟踪数据>附件信息”的valueMapOther.txt中查看:
C.可以设置崩溃时额外日志/二进制数据上报。Android的额外日志和二进制数据分别在“跟踪数据>附件信息”的extraMessage.txt和userExtraByteData中:
iOS的额外日志在“跟踪数据>附件信息”的crash_attach.log,由于Bugly 平台设计, ios 没有二进制文件userExtraByteData
5.2 动态关闭bugly上报
- 有些场景下,应用不需要崩溃上报,如:有些应用在杀进程时触发的上报不想上报到bugly;此时可以调用该接口关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报
动态关闭bugly上报。调用时会关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。
具体接口调用可参照 “异常上报模块” 的 " 2.7 动态关闭Crash上报 (当前仅Bugly、Bugly2渠道支持) " 部分
六、常见问题
6.1 Unity 异常捕获测试
- 主动抛出异常调试,比如
throw new System.ArgumentException("Parameter cannot be null", "original");
, - 脚本、异常之类的上报都在错误分析 列表展示,崩溃分析 列表只显示导致 App 闪退的问题
在管理端中,异常上报->错误分析中,查看异常上报详情
6.2 Bugly 超时检查机制注意事项
1、Crash 回调不能做长时间的读写操作;
2、Bugly 上报超时是3秒;
6.3 Bugly 初始化 Crash
Crash 初始化失败,出现“initCrash failed at GCloud.MSDK.MSDKCrash.InitCrash()”堆栈,大部分情况是因为游戏没有接入 Firebase 插件,但是 MSDKConfig.ini 中的 CRASH_CHANNEL 添加了 Firebase导致的。
解决方案:删除 CRASH_CHANNEL 中的 Firebase 即可。
常见堆栈如下:
GCloud.MSDK.MSDKCrash.InitCrash()
GCloud.MSDK.MSDK.Init()
MSDKMgr.Awake()
AppRoot.OnAwakeInternal()
LGame.Framework.SingletonMonoBehavior`1.Awake()
6.4 Bugly管理端我的产品中没有XXX产品信息
6.5 iOS Bugly 管理端附件信息中,没有上报的“XXX”信息
All rights reserved.