bugly进阶01-集成bugly时的相关参数
bugly进阶01-集成bugly时的相关参数
前言
bugly的集成十分的简单,在代码中只需要简单的一个语句就可以轻松集成:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Bugly startWithAppId:@"此处替换为你的AppId"];
return YES;
}
而实际上官方还为我们提供了另一个类似的语句:
/**
* 使用指定配置初始化Bugly
*
* @param appId 注册Bugly分配的应用唯一标识
* @param config 传入配置的 BuglyConfig
*/
+ (void)startWithAppId:(NSString * BLY_NULLABLE)appId
config:(BuglyConfig * BLY_NULLABLE)config;
这个方法和前者相比多了一个BuglyConfig的类,通过它,我们可以让bugly按照我们的意愿为我们更好的工作。
BuglyConfig可设置参数
@property (nonatomic, assign) BOOL debugMode;
bugly sdk的debug信息开关。默认为NO,如果设置为YES,在控制台中你将会看到bugly自带的输出(BuglyLog),一般我们在开发的过程中会需要到它,但是上线的时候就没有打开的必要了,推荐设置为:
#if DEBUG
config.debugMode = YES;
#endif
@property (nonatomic, copy) NSString *channel;
自定义渠道标识。在“运营统计”模块很多和渠道有关的地方用到它,运营人员可以轻而易举地得知用户喜欢从哪个应用商店下载APP(虽然iOS开发者不太需要使用这个,毕竟苹果的应用商店只有一个),但是稍微了解一下,推荐设置为:
#if DEBUG
config.channel = @"测试模式";
#else
config.channel = @"苹果应用商店";
#endif
@property (nonatomic, copy) NSString *version;
自定义版本号。默认是空,但是如果不填的话会用你在xcode中设置的版本号,也就是你在项目target中Bundle Identifier的下一行Version里面写的那行字符串,无论是查看崩溃日志还是查看版本分布,你在很多地方都能看到版本号。推荐设置为:
```
(皮一下:-D)
----
@property (nonatomic, copy) NSString *deviceIdentifier;
自定义设备唯一标识。(留空)推荐设置为:
----
@property (nonatomic) BOOL blockMonitorEnable;
卡顿监控开关。默认是NO,也就是不监控卡顿,在bugly的“异常上报”模块中有检测卡顿的功能,那里会有记录。
----
@property (nonatomic) NSTimeInterval blockMonitorTimeout;
卡顿监控判断间隔。默认为3.5秒。也就是说卡顿超过这么久之后会上报卡顿。
----
@property (nonatomic, copy) NSString *applicationGroupIdentifier;
App Groups Id。这个要结合[APP Extension SDK](https://bugly.qq.com/docs/user-guide/instruction-manual-ios-app-extension/?v=20170912151050)一起使用,如果你听得一头雾水的话,那么这个字符串就没有必要理会。
----
@property (nonatomic) BOOL symbolicateInProcessEnable;
进程内还原开关。默认是YES。
----
@property (nonatomic) BOOL unexpectedTerminatingDetectionEnable;
非正常退出事件记录开关,默认关闭。这个一开始我也看得百思不得其解,然后在官方文档中的一个[阴暗角落](https://bugly.qq.com/docs/user-guide/upgrading-2.x-ios/)找到了答案,非正常退出事件实际上就是unix的专业术语的一个指令事件,叫做"SIGKILL",而"SIGKILL"一般不是用户或者开发者的问题,而是[程序已经进入suspend状态、applicationDidEnterBackground已经回调的时候,由系统发出"SIGKILL"强制程序直接结束](https://blog.csdn.net/liqinghua1653/article/details/28433233)。所以推荐不做修改或者设置为YES。
----
@property (nonatomic) BOOL viewControllerTrackingEnable;
页面信息记录开关,默认开启。当你查看日志的时候,里面有个“跟踪数据”,点进去之后你会发现里面还有“页面追踪”模块,当你开启的时候你会发现里面会用内容,这表示用户使用过程经过的controller,如果关闭,则不会有。所以推荐不做修改或者设置为YES。

----
@property (nonatomic, assign) id delegate;
不多说了,大家都懂。
----
@property (nonatomic, assign) BuglyLogLevel reportLogLevel;
控制自定义日志上报等级,默认值为BuglyLogLevelSilent,即关闭日志记录功能。bugly提供了类似于``NSLog``的输出方法,叫做``BLYLog``。而且这个方法在``BuglyConfig.debugMode``为真的时候可以支持在编译器的控制台输出显示,而且无论debugMode是否真假,在上传的日志中点进“跟踪日志”可以查看输出显示;不过这和``NSLog``有所不同的是分为Error、Warn等多个等级。
设置完上报等级之后,就表明bugly将上传该等级以及以上等级的输出,假设你设置的等级为``BuglyLogLevelWarn``,那么上报的输出的等级会包括warn和error这两个等级,而较低的Info、Debug将不会上传。建议设置为```BuglyLogLevelVerbose```,也就是最低等级。
----
@property (nonatomic, assign) BOOL consolelogEnable;
控制台日志上报开关,默认开启,如果该值为真,并且如果控制台有输出的话,日志中的会有“控制台信息”模块,可以点进去查看控制台的输出(如果按照本文推荐的设置的话你看普通用户上报的日志中在“控制台信息”是不会看到```BLYLog```输出的信息的,你猜是为什么?提示在``BuglyConfig.debugMode``的推荐设置),所以推荐不做修改或者设置为YES。

(开发时如果出现崩溃XCode也会打印出类似的信息)
----
@property (nonatomic, assign) NSUInteger crashAbortTimeout;
崩溃退出超时时间,默认为5,单位秒。如果监听到崩溃后,App一直没有退出,则到达超时时间后会自动abort进程退出。如果你设置为0的话则不会使用此项功能。
##其他可以设置的参数
除了BuglyConfig之外在``Bugly.h``中也有一些可以设置的参数,但是有意思的是只能通过set方法赋值而不是直接对变量赋值。
----
/**
* 设置用户标识
*
* @param userId 用户标识
*/
+ (void)setUserIdentifier:(NSString *)userId;
/**
* 更新版本信息
*
* @param version 应用版本信息
*/
+ (void)updateAppVersion:(NSString *)version;
“`
用户标识默认为空,版本信息默认为APP的版本号+内部版本号。二者都可以在可以在日志中“最近一次上报”模块中会有出现,分别对应的是用户ID、应用版本。
求打赏


(这个求打赏有些丑啊……有什么办法改进一下?)
bugly进阶01-集成bugly时的相关参数的更多相关文章
- 在 ReactNative 的 App 中,集成 Bugly 你会遇到的一些坑
一.前言 最近开新项目,准备尝试一下 ReactNative,所以前期做了一些调研工作,ReactNative 的优点非常的明显,可以做到跨平台,除了少部分 UI 效果可能需要对不同的平台进行单独适配 ...
- SQL Server 进阶 01 数据库的设计
SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...
- JavaScript进阶系列01,函数的声明,函数参数,函数闭包
本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...
- python进阶01 面向对象、类、实例、属性封装、实例方法
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...
- java 学习笔记(三)ZooKeeper集群搭建实例,以及集成dubbo时的配置 (转)
ZooKeeper集群搭建实例,以及集成dubbo时的配置 zookeeper是什么: Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式 ...
- Java 获取各时区时间,获取当前时间到格林威治时间1970年01月01日00时00分00秒的秒数
格林威治时间即UTC/GMT时间,1970年01月01日00时00分00秒(即UTC+8的北京时间1970年01月01日08时00分00秒)计算代码如下: /** * 获取指定时间到格林威治时间的秒数 ...
- js基础进阶--图片上传时实现本地预览功能的原理
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...
- 腾讯微博API时间线相关接口返回的微博信息中head值使用问题
腾讯微博API时间线相关接口返回的微博信息中head值表示作者头像url,这个链接直接访问并不能使用,需要再附加一个参数指定图片的大小(100.50),比如:[head]/100.
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
刷新SQL Server所有视图.函数.存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...
- Testlink集成Jira时如果出现Error咋办?
TestLink在用SOAP集成Jira时,如果出现: SOAP Fault: (code: WSDL, string: SOAP-ERROR: Parsing WSDL: Couldn't load ...
随机推荐
- dotnet 警惕使用 StackTrace 加获取方法标记 Attribute 特性在 Release 下被内联
大家都知道,在 dotnet 里的 Debug 下和 Release 下的一个最大的不同是在 Release 下开启了代码优化.启用代码优化,将会对生成的 IL 代码进行优化,同时优化后的 IL 也会 ...
- WPF 通过 InputManager 模拟调度触摸事件
在 WPF 中,框架可以分为两个部分,一个是渲染,另一个是交互.交互的入口是在 InputManager 里面,而实际的交互实现需要通过渲染布局和交互的路由事件才能完成.在输入管理提供了调度事件的方法 ...
- SQL server 自定义工资公式设计
目的: 工资系统中,在计算各工资项目的时候,用户能自定义公式.这里的讲述是从数据库方设计方面考虑,做简要的数据模拟和实体.存储过程的设计. 收集数据: 1.Employee员工信息数据(Employe ...
- C++ 多级继承与多重继承:代码组织与灵活性的平衡
C++ 多级继承 多级继承是一种面向对象编程(OOP)特性,允许一个类从多个基类继承属性和方法.它使代码更易于组织和维护,并促进代码重用. 多级继承的语法 在 C++ 中,使用 : 符号来指定继承关系 ...
- 为什么我反对过度使用TypeScript?
前言 在2024年, TypeScript肯定算不上什么新鲜的技术. 但是经过长时间的使用, 我认为可以使用, 但是要适度. 类型跟不上业务的变化 我们知道TypeScript的类型定义是业务的体现. ...
- CF1912K
题意:给定一个长度为 n 的序列,求有多少个子序列满足该子序列内任意相邻 3 个数的和为偶数. 只与奇偶有关,所以可以把状态转化为 01 的. 设 \(f[i][x][y]\) 表示在前 i 个数中, ...
- S/4 HANA 中的 Email Template
电子邮件是非常常见的业务需求. SAP 了解这一点,并在 S/4 HANA(cloud和on premise)中引入了非常有趣的功能--Email Template.它将CDS视图和HTML模板结合了 ...
- JUC并发编程学习笔记(二)Lock锁(重点)
Lock锁(重点) 传统的synchronized 传统的解决多线程并发导致的一些问题我们会使用synchronized关键字来解决,synchronized的本质就是队列.锁. Lock的实现类有: ...
- 美团二面:SpringBoot读取配置优先级顺序是什么?
引言 Spring Boot作为一种轻量级的Java应用程序框架,以其开箱即用.快速搭建新项目的特性赢得了广大开发者的青睐.其核心理念之一就是简化配置过程,使开发者能够快速响应复杂多变的生产环境需求. ...
- 更新package.json里所有模块
安装该插件 cnpm install -g npm-check-updates 或者 npm install -g npm-check-updates 在有package.json的目录执行 npm- ...