QQBugly 一种愉悦的开发方式

在我们线上app 中,我们的电商项目集成了QQBugly ,但是我们没有勾选自动上传 DYSM 符号表,所以我们要手动上传 ;

算是给腾讯Bugly打个广告吧,腾讯Bugly官网地址,需要的开发们,自行研究一下,或者听我给你讲一讲;

官方集成文档地址(ios)

集成教程我就不说了,文档很详细,为啥要写这篇博客呢,为了记录帮助自己理解和消化;

什么是符号表?

符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示:

<起始地址> <结束地址> <函数> [<文件名:行号>]


说直白点,就是利用符号表,帮你找到出错的代码;
哇:这么神奇,对,就是这么神奇;
我们用的是第二种方式 提取dSYM文件的符号表文件并上传

官方给的工具链接 集成文档内有,我教你如何用就好;

1. 下载官方工具,放到了一个文件夹;

2. 找到线上 ipa 的 dSYM

打开XcodeWindow 的选项中的 Organizer 找到上次打包生成的 文件;如图



如果你告诉我,你删了,或者找不到dSYM 文件,小编只能告诉我,我也很无奈,下次记得备份每个版本的 dSYM ,不然就用 第一种方式上传 dSYM 吧,省去很多麻烦;

3. 打开 终端工具 键入命令:
java -jar /Users/pengchao/Desktop/buglySymboliOS2/buglySymboliOS.jar -i /Users/pengchao/Desktop/test/SpringTour.app.dSYM -o 0801.zip

实用命令 第一个参数[ ] 表示buglySymboliOS.jar 的路径,第二个参数[ ] 表示dSYM的路径,第三个参数[ ]表示生成的zip的名称;
java -jar [buglySymboliOS.jar路径] -i [xxx.app.dSYM的路径] -o [xxx.zip]

例如:
java -jar /Users/pengchao/Desktop/buglySymboliOS2/buglySymboliOS.jar -i /Users/pengchao/Desktop/test/SpringTour.app.dSYM -o 0801.zip

生成zip 成功,在finder 搜索 0801.zip ,然后到腾讯Bugly 的官网,找到那个发生闪退的bug ;

4. 上传 zip 符号表

在没有上传符号表之前,我们是看不懂的;截图如下;

上传成功;我们看到了,截图告诉我们,哪个控制器的,哪个 ViewMode 出错,在哪 一行,都清晰可见,现在我们就去看代码,找代码,复现bug。(最好是找到出错设备的那个软件版本,最好的机型相同);

5. 通过 提示信息 找错误代码;

根据提示一步步的找到了 STHome2017ViewController viewDidLoad 方法
[STHome2017ViewModel startNetWork] 里面的 [STHome2017ViewModel topBannerDataBatch:failure:] 方法发生了闪退;

但是由于我找了台iphone 7 软件版本也是出bug的那个,不幸没能复现bug ,这就很尴尬了;

后来我仔细看了代码,发现可能是,我这个 NSDictionary 可能有了一个 null 的值,才导致的闪退了,我写了一段模拟代码,果不其然发生了闪退现象,所以我加了个安全保护;
下面展示一下我的 错误代码;

6. 修改前的代码
self.topBannerOperation=[manager GETAndShowExceptionIfErr:JavaCMSHomeQueryContent parameters:@{@"cityId":([STConfig GetInstance].localCity.CityId),@"positionId":NullNumber([OnlineConfigurationManager sharedManager].localConfigurationmodel.landingPage.home.topCarousel.positionId)} success:^(AFHTTPRequestOperation *operation, id responseObject, id Response) {
    
    if (responseObject[@"data"]!=nil&&[responseObject[@"data"] isKindOfClass:[NSDictionary class]]) {
        weakself.topBannerModel=[[Home2017CMSModel alloc]initWithDictionary:responseObject[@"data"] error:nil];
    }
    
    dispatch_group_leave(weakself.group);
    
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    
    dispatch_group_leave(weakself.group);

7 .修改后的代码

修改后的代码 (加了个 NullString 用来返回一个非null 的字符串)

self.topBannerOperation=[manager GETAndShowExceptionIfErr:JavaCMSHomeQueryContent parameters:@{@"cityId":NullString([STConfig GetInstance].localCity.CityId),@"positionId":NullNumber([OnlineConfigurationManager sharedManager].localConfigurationmodel.landingPage.home.topCarousel.positionId)} success:^(AFHTTPRequestOperation *operation, id responseObject, id Response) {
    
    if (responseObject[@"data"]!=nil&&[responseObject[@"data"] isKindOfClass:[NSDictionary class]]) {
        weakself.topBannerModel=[[Home2017CMSModel alloc]initWithDictionary:responseObject[@"data"] error:nil];
    }
    
    dispatch_group_leave(weakself.group);
    
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
dispatch_group_leave(weakself.group);

提交修改,下个版本发布的时候,就不会出现闪退了,如果影响用户比较多,可以发临时更新;

谢谢你查看我的文章;如有不足可以指出,谢谢🙏;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 207,113评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,644评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,340评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,449评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,445评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,166评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,442评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,105评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,601评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,066评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,161评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,792评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,351评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,352评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,584评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,618评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,916评论 2 344

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,524评论 25 707
  • 前言 先说下友盟的SDK,现在真是对友盟没脾气了,分享不正常!三方登录不正常!崩溃分析也不好用!最近所在项目的Ap...
    翻炒吧蛋滚饭阅读 22,513评论 43 53
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,601评论 18 139
  • 什么是符号表? 符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示: <起始地址> <结束地址> ...
    深圳阳光阅读 12,181评论 28 5
  • 舒缓: 儿子起床没昨天早了。因为人的精神不可能时常处于饱满状态,需要有松弛,适度放松也是为了调整新的状态。儿子陪我...
    天蓝蓝47阅读 421评论 1 3