概述
Bugly Unity Plugin是专为基于Unity引擎开发的跨移动平台(iOS/Android)游戏APP而开发的异常监控插件,它能够自动捕获Unity项目中脚本(如JavaScript、C#)和本地代码(如Objective-C、Java)抛出的异常,并提供实时、准确的错误分析服务。
准备工作 如果你之前已经在[Bugly]或[腾讯移动开放平台]注册了应用,并获取到AppID,可以继续使用它。 如果你尚未注册应用,可以通过QQ登录Bugly网站,点击”用户名”,选择”我的App”,点击[注册新App],填写完应用基本信息完成注册,即可得到Bugly AppID。 注意: 导出的Android和iOS项目分别需要注册两个不同的AppID
通用部分集成步骤
1、下载并导入Bugly Unity Plugin到Unity项目工程
下载最新版本[Bugly Unity Plugin],双击.unitypackage文件,即可导入Bugly Unity Plugin的相关文件到您的Unity工程中。
如果你已经接入过Bugly的SDK,你可以只导入.cs和.dll文件,然后在网站上下载最新的SDK版本替换即可。 注意:
2、初始化Bugly
选择第一个或主场景(Scene),在任意脚本文件(建议选择较早加载的脚本)中调用如下代码进行初始化。
// 开启SDK的调式开关
Bugly.EnableLog (true); // 设置C#堆栈日志捕获的级别,默认为Exception,可以选择为Assert、Error等
Bugly.RegisterHandler (LogSeverity.Exception);
#if UNITY_IPHONE
// 设置版本
Bugly.SetAppVersion ("1.0(12)"); // 设置渠道
Bugly.SetChannel ("bugly_channel"); // 使用AppID初始化SDK
Bugly.InitSDK ("bugly_appid");
#endif
#if UNITY_ANDROID
Bugly.SetAppVersion ("1.0");
Bugly.SetChannel ("bugly_channel");
Bugly.SetReportDelayTime("0"); // 使用AppID初始化SDK
Bugly.InitSDK ("bugly_appid");
#endif
// 如果你已经在Unity项目导出的Android或iOS工程中进行了SDK的初始化,则只需调用此方法完成C#堆栈捕获功能的开启
Bugly.EnableExceptionHandler();
3、挂载脚本并初始化
您也可以采用此方法初始化Bugly,如果您采用步骤2的方法在代码中初始化,请忽略此步骤!
3.1. 挂接Bugly组件(Component)到主场景的游戏对象
Plugins
目录,将BuglyInit.cs脚本文件拖动到新建的游戏对象上进行脚本挂接(或菜单栏选择 Component -> Scripts -> com.tencent.bugly.unity3d -> BuglyInit)3.2. 配置应用的App ID
最后,在检查器(Inspector)界面中配置Bugly组件的初始化信息(包括应用的Bugly AppID、版本、渠道等)
你可以在Bugly网站的[应用配置]页面中查看注册应用的App ID
iOS部分集成步骤
导出iOS项目时,必须修改如下设置项才能让未处理的异常(Uncaught Exceptions)被捕获上报
1、在Unity中修改项目的编译设置(Build Settings)
按下Ctrl+Shift+B
打开Build Settings面板,点击Player Settings …,切换到Setting for iOS选项卡,选择Other Settings栏,修改Optimization配置项Script Call Optimization的值为Slow and Safe
2、在XCode中修改导出的iOS工程的编译配置
此部分的配置你可以参考[iOS SDK接入指南]
至此,Unity项目的iOS工程配置完成。你可以在Unity中触发C#的异常验证崩溃上报功能。 注意:请在真机上进行调式验证。
Android部分集成步骤
导出Android项目时,请修改如下配置:
1、在Unity中修改项目导出的选项
Ctrl+Shift+B
打开Build Settings面板,选择Android平台,勾选Development Build 和 Script Debugging选项2、在Eclipse/ADT-Bundle IDE中修改Android工程的配置文件
此部分的配置你可以参考[Android SDK接入指南] 修改导出的Android工程的AndroidManifest.xml文件中的权限声明,添加如下权限:
<!-- 网络通信-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 获取MAC地址-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 获取设备信息 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 可选的权限: -->
<!-- 获取logcat日志 -->
<uses-permission android:name="android.permission.READ_LOGS" />
注意:如果权限声明已经添加,请勿重复加入
至此,Unity项目的Android工程配置完成。你可以在Unity项目中触发C#的异常进行测试验证。 注意:请在真机上进行调式验证。
API列表
1、通用接口
初始化Bugly SDK,传入Bugly注册得到的 App ID
是否开启SDK的日志打印,如果开启,则会打印sdk的调式信息,默认关闭。请在调式阶段打开,发布版本中关闭。 在初始化方法之前调用。
设置应用的版本,如果不设置,默认取工程的配置 在初始化方法之前调用。
设置应用的渠道名。 在初始化方法之前调用。
设置用户标识,如果不设置,默认为10000 在初始化方法之后调用。
设置捕获C#堆栈的级别,默认为Exception,即Exception的堆栈日志才会捕获上报。
主动上报C#的异常
设置处理回调的游戏对象
2、iOS专用接口
设置应用bundle id,默认读取工程的配置
设置设备的标识,默认由SDK计算open uuid
是否开启异常合并上报和进程内堆栈还原,默认关闭。如果开启异常合并,同一天同一异常只会上报一次。
设置异常发生回调处理
添加用户自定义数据上报
3、Android专用接口
设置启动上报时的延时时间,单位毫秒