修复.jpg

前提应用集成了友盟的bug收集功能。

友盟的错误分析、错误列表里面有数据。

正题

错误详情.png

错误列表 点击进去基本上都是这个样子,这并不能方便我们及时定位到错误地方。

解决先把你要分析的程序进行打包

打包.png定位到错误的地方

错误定位.png

最后

针对错误的地方 然后进行修复就OK了。

解析下工具代码(应群主的要求)秦小风

上述代码 是为了 获取 Library/Developer/Xcode/Archives/ 下的文件夹。这也是第一步要先打包的原因了。

进行过滤、 让其支持 xcarchive 文件和 dSYM 文件

点击 分析 按钮,程序到底做了什么?需要的参数

UUID 的类型

UUID 的可执行文件路径

Slide Address

错误内存地址

核心代码

commandToRun:里面是上面写的4个参数

NSTask:是MAC OS X用来执行系统命令的一个类库,作用类似php的exec。

LaunchPath

可执行文件的路径

arguments

应用于启动可执行文件的命令参数。

[task launch]

启动任务

StandardOutput

设置接收的输出类型。NSPipe:单向通信通道。一个NSPipe对象表示一个管道的两端,并能通过管道进行通信。管道是相关过程之间的单向通信通道; 一个进程写入数据,而另一个进程读取数据。通过管道的数据被缓冲; 缓冲区的大小由底层操作系统决定。

[pipe fileHandleForReading]

文件句尾执行完毕。NSFileHandle:用于文件描述符的面向对象的包装器。

readDataToEndOfFile

同步读取可用数据直到文件结尾或最大字节。返回值是NSData。手动通过 atos 工具(Mac 平台)来输出错误地址

有个开源的 atos

iOS打包后的文件会有dSYMs这个文件夹

找到打包的文件 右键显示包内容

点进去 dSYMs 文件夹,右键显示 XXX.app.dSYM包内容

找到 DWARF 文件夹

打开终端 cd DWARF 文件夹

xcrun atos -arch arm64 -o 程序的名字 错误的内存地址

然后回车,对应的错误代码和行数就会输出显示出来了。

原理iOS使用的文件结构是 DWARF文件结构 (Debug With Attributed RecordFormats) 是一种调试文件结构标准,结构相当复杂。

XXX.app.dSYM 是一个二进制文件。里面包含了 app crash 之后的栈信息。

崩溃日志.png

上图可以看到 第4行有崩溃所在的页面 以及方法的名字。但是具体行数没发现在哪可以找到。

Mac OS X 平台下 Xcode 自带了 atos 这样的工具,通过它去符号化,直接定位到某个文件的具体位置

如果想深入了解,可以去看 《Mach-O二进制文件解析》

这个工具是 dSYMTools

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

ios友盟错误_iOS - 友盟错误分析相关推荐

  1. ios友盟错误_iOS 2017友盟错误统计及分析

    我还以为你不会搜我呢~ 看完这文章后的你 前言 在app开发中,我坚信,总会有小伙伴会用到友盟统计的,我也是(废话).但是在友盟的错误日志分析这块,小白用的话可能会有点小麻烦.最近有个小伙伴问我这点, ...

  2. ios友盟错误_iOS之DYSM分析友盟错误信息

    前言: 有很多公司利用友盟来统计错误崩溃日志,方便开发人员查找错误的位置,但是反馈的日志是无法确定到底是哪里发生崩溃的,那么我们如何去查呢? 首先我们看下友盟报错的信息: Paste_Image.pn ...

  3. android友盟错误日志,友盟崩溃日志分析三种方式

    第一种:采用友盟提供的工具 1.再友盟错误页面,右下角,有一个保存错误日志的. 比如:xxx iOS_错误分析_错误详情_100442.csv 2.把xxx.app.dSYM 放到这个目录下~/Lib ...

  4. iOS分析友盟错误报告

    源地址: http://evil4emperor.diandian.com/post/2012-05-28/21001400 iOS分析友盟错误报告 在友盟中统计了许多的App的数据,当然也会有好多的 ...

  5. android+仿友盟更新,android友盟增量更新

    1.增量升级的原理 增量更新的原理就是将本地apk与服务器端最新版本比对,并得到差异包.比如现在的版本是1.1.4,大小是7.2M,新版本是1.1.5.大小是7.3M.我们发现两个版本只有0.1M的差 ...

  6. android集成友盟u app,友盟U-Mini小程序集成指南

    适用范围 该文档适用于友盟+微信小程序统计SDK 2.3.2 及以上版本. 微信小程序统计SDK快速集成 1. 注册友盟+账号 登录友盟+官网,按照引导注册友盟+账号 特别提醒:我们建议开发者在注册账 ...

  7. 用友u8年度账文件服务器错误,用友U8.52建立年度账出现错误

    文章摘要:问题现象:用友U8.52建立年度账出现错误?出错事项:建立年度账出现错误:大体内容是:插入错误:列名或所提供值的数目与表定义不匹配:传输网上银行信息(NBNewAcc.DLL)失败:无法除去 ...

  8. win10系统做T3服务器,win10如何安装用友t3_win10安装用友t3教程

    用友T3是用友旗下的一个财务软件版本,很多有需要的用户的都会在电脑中安装.但有些不熟悉的用户不知道win10如何安装用友t3,所以今天本文为大家分享的就是关于win10安装用友t3教程,一起往下看吧. ...

  9. android友盟错误日志,Taro(React-native)集成友盟错误日志分析U-App移动统计

    1.先去友盟官网注册应用,获取到appkey,友盟+移动统计分析U-App,这个步骤就不贴出来了,需要注意的是ios和Android 不能使用同一个appkey,需要分别创建两个应用,应用名称可以在后 ...

最新文章

  1. cmd导入oracle库文件,cmd 导入oracle数据库
  2. python configparse_python中ConfigParse模块的用法
  3. C++女程序员一个人留在北京
  4. SpringBoot2.1.5(14)---外部配置
  5. 51nod 1478 括号序列最长合法子段
  6. 【须弥SUMERU】宜信分布式安全服务编排实践
  7. SELinux系列(九)——SELinux auditd日志系统的安装与启动
  8. 正宗PC Unix实验环境
  9. matlab线性代数命令大全,线性代数 - MATLAB 系统中文帮助手册
  10. Linux磁盘管理基本配置
  11. PHP里面用ichartjs,ichartjs插件的使用
  12. 冒险岛手游服务器维护界面,冒险岛手游10月28日全平台更新维护公告
  13. 玩游戏显示服务器不稳定,FPS不稳定是什么原因?玩游戏FPS低怎么办?
  14. VBox 启动虚拟机失败 - NtCreateFile
  15. 信息系统项目管理师:信息、信息化、信息系统、信息系统开发方法
  16. uni-app 配置 以及 使用微信云函数
  17. 至强服务器性能视频,英特尔至强E5-2600服务器到底有多强?
  18. 33:判断字符串是否为回文
  19. CC1101调试入门
  20. 自研H323协议栈设计

热门文章

  1. Hexo+GitHubPages搭建个人博客网站
  2. 聊一聊Brodmann大脑皮层分区
  3. python中raise啥意思_python raise什么意思
  4. Ubuntu下安装最新的搜狗输入法
  5. 1. python爬虫
  6. abb机器人过载报错_ABB机器人常见报警代码与解决方案
  7. Quartz+spring列子
  8. H.323-SIP信令网关的实现
  9. TWaver自动化设计平台Legolas —— 数据响应动作
  10. 你可能不了解的《唐诗三百首》