bugly进阶01-集成bugly时的相关参数

个人github
CSDN博客

前言

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。
![页面追踪](https://github.com/MrYu4/MyUploadPicture/blob/master/%E9%A1%B5%E9%9D%A2%E8%BF%BD%E8%B8%AA.png?raw=true) ----

@property (nonatomic, assign) id delegate;

        不多说了,大家都懂。

----

@property (nonatomic, assign) BuglyLogLevel reportLogLevel;

         控制自定义日志上报等级,默认值为BuglyLogLevelSilent,即关闭日志记录功能。bugly提供了类似于``NSLog``的输出方法,叫做``BLYLog``。而且这个方法在``BuglyConfig.debugMode``为真的时候可以支持在编译器的控制台输出显示,而且无论debugMode是否真假,在上传的日志中点进“跟踪日志”可以查看输出显示;不过这和``NSLog``有所不同的是分为Error、Warn等多个等级。![自定义日志](https://github.com/MrYu4/MyUploadPicture/blob/master/bugly-%E8%87%AA%E5%AE%9A%E4%B9%89%E6%97%A5%E5%BF%97.png?raw=true)

         设置完上报等级之后,就表明bugly将上传该等级以及以上等级的输出,假设你设置的等级为``BuglyLogLevelWarn``,那么上报的输出的等级会包括warn和error这两个等级,而较低的Info、Debug将不会上传。建议设置为```BuglyLogLevelVerbose```,也就是最低等级。

----

@property (nonatomic, assign) BOOL consolelogEnable;

        控制台日志上报开关,默认开启,如果该值为真,并且如果控制台有输出的话,日志中的会有“控制台信息”模块,可以点进去查看控制台的输出(如果按照本文推荐的设置的话你看普通用户上报的日志中在“控制台信息”是不会看到```BLYLog```输出的信息的,你猜是为什么?提示在``BuglyConfig.debugMode``的推荐设置),所以推荐不做修改或者设置为YES。
![控制台日志](https://github.com/MrYu4/MyUploadPicture/blob/master/%E6%8E%A7%E5%88%B6%E5%8F%B0.png?raw=true) (开发时如果出现崩溃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时的相关参数的更多相关文章

  1. 在 ReactNative 的 App 中,集成 Bugly 你会遇到的一些坑

    一.前言 最近开新项目,准备尝试一下 ReactNative,所以前期做了一些调研工作,ReactNative 的优点非常的明显,可以做到跨平台,除了少部分 UI 效果可能需要对不同的平台进行单独适配 ...

  2. SQL Server 进阶 01 数据库的设计

    SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...

  3. JavaScript进阶系列01,函数的声明,函数参数,函数闭包

    本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...

  4. python进阶01 面向对象、类、实例、属性封装、实例方法

    python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...

  5. java 学习笔记(三)ZooKeeper集群搭建实例,以及集成dubbo时的配置 (转)

    ZooKeeper集群搭建实例,以及集成dubbo时的配置 zookeeper是什么: Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式 ...

  6. Java 获取各时区时间,获取当前时间到格林威治时间1970年01月01日00时00分00秒的秒数

    格林威治时间即UTC/GMT时间,1970年01月01日00时00分00秒(即UTC+8的北京时间1970年01月01日08时00分00秒)计算代码如下: /** * 获取指定时间到格林威治时间的秒数 ...

  7. js基础进阶--图片上传时实现本地预览功能的原理

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...

  8. 腾讯微博API时间线相关接口返回的微博信息中head值使用问题

    腾讯微博API时间线相关接口返回的微博信息中head值表示作者头像url,这个链接直接访问并不能使用,需要再附加一个参数指定图片的大小(100.50),比如:[head]/100.

  9. 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  10. Testlink集成Jira时如果出现Error咋办?

    TestLink在用SOAP集成Jira时,如果出现: SOAP Fault: (code: WSDL, string: SOAP-ERROR: Parsing WSDL: Couldn't load ...

随机推荐

  1. [FE] 被动检测 iframe 加载 src 成功失败的一种思路和方式 (Vue)

    思路:设置定时器一个,n 秒后设置 404 或其它,此时给 iframe 的 onload 事件设置回调函数,加载完成则取消定时器. 示例: data () { return { handler: n ...

  2. [FAQ] chrome.runtime.onMessage 问题, Unchecked runtime.lastError: The message port closed before a response was received

    // quasar background-hook.js chrome.runtime.onMessage.addListener(function (request, sender, sendRes ...

  3. 手把手教你如何构建 WPF 官方开源框架源代码

    从去年微软就将 WPF 开源了,差不多现在所有 WPF 的源代码都开源了.在学习框架的时候,我会做一些改动,期望能构建一个自己的版本进行测试.但是作为一个特别大的框架,想要构建跑起来可不是直接在 Vi ...

  4. Competition Set - 模拟赛 I

    HNOI2017 Day2 2023-06-10 注:Day2T2换为BJOI2017Day2T1,以匹配学习进度 A.大佬 B.抛硬币 C.喷式水战改 A 大佬 你需要用 \(n\) 天挑战一名大佬 ...

  5. Swift Charts 报错:Initializer ... requires that .. conform to ‘Identifiable‘

    目录 1. 问题描述 2. 解决办法 1. 问题描述 在运行Swift Charts官方折线图示例时,出现了如下错误. Initializer 'init(_:content:)' requires ...

  6. Nginx教程+笔记

    Nginx 学习视频: 2020最新 Nginx教程全面讲解(Nginx快速上手) https://www.bilibili.com/video/BV1W54y1z7GM?t=553&p=14 ...

  7. 如何使用Tushare+ Backtrader进行股票量化策略回测

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 典型股票量化回测流程 典型的股票量化策略回测流程包括以下几个步骤: 数据获取:首先需要获取所需的股票市场 ...

  8. ansible(6)--ansible的copy和fetch模块

    1. copy模块 功能:从 ansible 服务端主控端复制文件到远程主机: copy模块的主要参数如下: 参数 说明 src 复制的源文件路径,若源文件为目录,默认进行递归复制,如果路劲以&quo ...

  9. JDK源码阅读-------自学笔记(十七)(java.io.File类)

    File类简介 java.io.File类:抽象代表文件和目录. 使用此类,相当于获取了系统的文件,可以对其进行操作. 在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到本类 File ...

  10. PageOffice调用本地office实现多人在线同时编辑Word文档

    说明:多人同时在线编辑文件大多数会出现文档相互覆盖的问题,后保存的文档会覆盖先保存的文档.pageoffice的这个功能可以用程序控制不同用户打开文件后,编辑Word文档中属于自己的区域,并且不会互相 ...