首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

iOS开发——解析崩溃日志

在实际开发过程中,作为开发者我们常常会碰到一种场景,那就是真机调试时崩溃了,而有时又不能在Xcode中打印出崩溃信息,那么这时候我们就必须要获取到崩溃原因,从而解决问题。...而此时你可以选择导出自己崩溃日志,并且这里我们看到崩溃日志,都是Xcode已经帮我们符号化,很清晰就可以看到崩溃原因,以及崩溃位置。...如果是其他用户,下载了我们App之后出现了崩溃,我们可以从iTunes Connect中获取到其他用户崩溃日志,但是这时如果你去看他人崩溃日志,不出意外您是懵逼。这是崩溃日志么?...而如何把他人崩溃日志符号化呢? 这就是我们接下来要讲内容了。...依旧是万能Xcode给我们提供了一个工具 —— symbolicatecrash,这是一个Xcode自带分析工具,可以通过机器上崩溃日志和应用.dSYM文件定位发生崩溃位置,把Crash日志中一堆地址替换成代码相应位置

1.3K30

iOS如何获取崩溃日志

前言 在日常测试iOS中会经常遇到App崩溃情况,然后给研发提bug。如果就提bug就有一两句话描述,研发很难精准排查问题,所以作为测试人员需要提供崩溃日志或者崩溃堆栈辅助研发排查问题。...本文介绍几种常用获取崩溃日志方法,可以帮助大家在工作中提高工作效率和协作效率。...iOS获取日志方法 Xcode工具 先来介绍一种最简单方式使用Xcode工具方式,手机和mac连接后,打开Xcode选择window进入Organizer,在Organizer窗口上,选中Devices...image 在左侧导航面板上,选中View Device Logs,如下图所示: Logs菜单就可以看到mac曾经同步过iOS设备崩溃日志。...崩溃日志符号解析 通过上面两种方式,我们可以拿到crash后文件。但是crash日志包含很多字符是16进制,无法看到具体类名和方法名,所以需要通过把crash文件符号化。

2.8K20

解决 Flutter 引起 iOS 内存崩溃问题

事情发生在最近,我们应用(稿定设计)新上线 iOS 版本崩溃数据飙升。根据崩溃日志和用户反馈,大部分新增崩溃都来自于同一个原因:内存不足。有的直接变成 OOM,不易排查。...有的则是申请内存失败,导致后续逻辑错误崩溃。 结合「处处开花,多点爆破」情况来看,应该是某种偏底层内存管理问题。这就有点挠头了,因为这个版本并没有做什么内存相关改动。...中做了什么改动,导致了内存崩溃问题。...于是,顺藤摸瓜,我在 Flutter issue 中搜索了几个关键词:iOS compress memory,第一个帖子[2]就证实了我猜想: 文中提到了几个关键点: 2.5.3 之后版本,内存崩溃都开始变得多...于是,我们立刻升级尝试了一下,确实不会崩溃了,我们稍加适配,就上线了。目前根据线上数据反馈,内存崩溃问题已经完美解决。

1.4K10

iOS崩溃日志ips文件解析

iOS崩溃日志ips文件解析 一 简介   测试组同事在进行稳定性测试时,通常会遇到一些崩溃,然后他们会将这些崩溃日志(一般是ips格式文件)反馈给开发进行分析,但是这些ips文件中内容通常是如下图这样...,都是一些十六进制堆栈地址,如果仅仅根据这些堆栈地址,我们基本无法做任何事情,连最基本崩溃定位都做不到。...那么,在iOS开发中,还有一些其他方法可以帮助我们将这些堆栈信息转化为可视化日志文件,在转化后可视化日志文件中,我们可以清晰定位到我们应用崩溃位置,如下图2所示。   ...这个转化过程有一个专业术语,叫符号化,就是讲这些堆栈地址转化为我们可识别的一些类名、方法名等符号信息。 ? ? 二 解析步骤   所以,如何实现这样转化是一个很重要问题。...管理界面,这个界面有我们之前打的包所有记录,选择测试App对应App以及打包版本,单击选中Archive选择 show in Finder,然后将对应.xcarchive文件拷贝出来,放在桌面或其他自己方便查看地方

6.4K30

iOS 友盟崩溃日志定位代码

1、登录友盟移动统计后台,查看错误列表 如果还没接入U盟移动统计SDk,请先前往文档中心http://dev.umeng.com/analytics/ios-doc/integration#5完成接入...查看错误列表.png 2、从友盟报表中心下载 .csv崩溃日志 ? 从友盟下载 .csv崩溃日志 3、下载错误分析工具 —— umcrashtool,,并将工具和日志放在同一目录下UMCrash。.../umcrashtool + .csv崩溃日志路径 命令。如下图: 例如: ....回车键执行命令行 解析结果如下图:可以看到有两个崩溃Bug,分别定位到了具体方法名称和位置,也在当前文件目录下导出了解析结果——原崩溃日志名-symbol.csv文件,内容和图中输出结果基本一样...崩溃日志解析结果 5、位置定位到了,接下来就埋头改Bug咯........ 如果我介绍没帮到你,可以看看这篇文章: http://www.jianshu.com/p/77d8b5e0d8c3

2.1K10

iOS - 记录bugly一次崩溃

一·报错原因 NSRangeException NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds 二·初步分析 报错超类属于...NSRangeException -> NSRange NSMutableRLEArrya 可变RLE数组越界 三·代码分析 出错堆栈最后指向了一个类方法 + (CGFloat)getTheStringWidth...NSMutableAttributedString alloc] initWithString:string]; NSRange range = NSMakeRange(0, attrStr.length); } 回到第一点NSRangeException...可以定位到 NSRange range = NSMakeRange (x,x); 这一句代码 那么出现Out of bounds 情况会不会可能是 1.前后值域都为0 2.或者是访问了一个野指针地址导致系统返回来了一串负数在...range = NSMakeRange(0, attrStr.length); 五·Bingo 截屏2021-11-09 下午2.50.12.png 六·发生情况猜测 本类计算文本高度算法通过对象传入参数入参前就已经

1.3K20

iOS14 Beta4崩溃修改

iOS 14 beta4崩溃修改 前言 升级iOS 14Beta4后,有用户反馈使用我们APP时会崩溃,有登录、查看详情,都会出现崩溃。...我们查看Bugly数据也发现崩溃率上升了0.02%,直接超出了指定崩溃指标。虽然是由于升级beta版系统导致,但还是要排查出具体原因,然后尽快适配。...排查 由于崩溃是必现,所以排查起来很容易,找一台升级了iOS14 beta4手机,然后复现步骤,看具体崩溃地方,即可 我们APP是由于使用了SexyJson这个库,其中SexyJsonProtocol...于是再次修改 如图所示,第一次修改: [1597027634294.jpg] 第二次修改: [1597028081543.jpg] 最后 所以我们项目里在iOS14 beta4中崩溃是由于SexyJson...库中强制解包导致,但是真正原因是iOS14 beta4中AnyRandomAccessCollection()此方法不能正常工作了。

70651

实战 iOS 连续崩溃检测与自修复

背景 在近期 iOS 上线版本,友盟在它升级版本中默认就自动进行用户崩溃收集上报。...这就导致大多服务还没起来,应用就已经崩溃了。只要出现了这种情况,每次打开 App, 都会因为一样问题,而连续闪退。 2. 连续崩溃后果 那么像这样连续崩溃,会造成什么后果呢?...通常最先想到思路,就是和崩溃上报框架一样,通过捕获异常,来观察它每次崩溃。...而在微信读书团队 iOS 启动连续闪退保护方案 一文中,为我们提供了很好思路: 持久化一个 crashCount 变量 每次启动 crashCount = crashCount +1 在 x 秒后,...,iOS 中通过 UIApplicationWillTerminateNotification 来监听,收到通知后,将次数置空清零。

1.1K10

iOS 10 iMessage字符崩溃Bug又来了

近日,黑客@vincedes3发现了一个从iOS 8 到 iOS 10.2.1 b2通用iMessage字符崩溃Bug,该Bug同样利用了和当年iOS 8iMessage短信Bug类似手法,将一段恶意代码发送给受害者...通过iMessage把这个文件传给你受害者好友 5. 等待受害者点开短信,他会中招 6....可以通过这个链接来修复 工作原理 在受害者打开短信时候,触发了大量能够引起短信程序崩溃字符,当用户浏览该短信时候,cpu进行了大量计算直到短信app点不动。...TXT版本触发代码: http://vincedes3.com/crashtext.txt HTML版本触发代码: http://vincedes3.com/crashtext.html 修复 1....该链接会触发短信快捷链接,点击打开 3. 进入发送短信也卖弄 4. 点击取消 5.

89150

iOS中防止数组越界之后发生崩溃

https://blog.csdn.net/u010105969/article/details/56011127 在iOS开发中有时会遇到数组越界问题,从而导致程序崩溃。...为了防止程序崩溃,我们就要对数组越界进行处理。通过上网查资料,发现可以通过为数组写一个分类来解决此问题。 基本思路:为NSArray写一个防止数组越界分类。...分类中利用runtime将系统中NSArray对象方法objectAtIndex:替换,然后对objectAtIndex:传递过来下标进行判断,如果发生数组越界就返回nil,如果没有发生越界,就继续调用系统...        }     } else{ return [selfmutableObjectAtIndex:index];     } } @ 2018.06.01更新: 这里有一个防止数组越界崩溃升级版...,即使arr[index]这种情况下产生崩溃也能防止。

1.9K10

GCDAsyncSocket 在 iOS15 出现 - 崩溃排查笔记

本文会通过对 NSThread 原理进行分析,对 iOS 15 开始出现 [_NSThreadPerformInfo dealloc] 相关崩溃进行定位,并提供相应解决方案 一、背景 从 iOS...15.0 Beta5 开始,集成开源库 GCDAsyncSocket APP 开始出现 -[_NSThreadPerformInfo dealloc] 相关崩溃 Crash on iOS 15.0...objc_release 减少引用计数 五、objc 内存管理机制 为了更好理解崩溃堆栈,我们需要简单回顾一下objc内存管理机制 示例代码 Arc *obj = [Arc new]; 在...小结: 经过前面的分析,我们可以得知,iOS 新系统中存在一个 bug,该 bug 导致即使我们通过将参数waitUntilDone 设置为YES 方式阻塞当前线程时,仍然存在触发悬垂指针可能...(2.0), watchos(2.0), tvos(9.0)); 七、解决方案 因为崩溃原因是调用performSelector:onThread:时,参数会被系统私有类持有导致崩溃,所以,我们可以通过以下方案解决

3.5K71

如何全面监控 iOS 千奇百怪崩溃

我们采集到崩溃日志,主要包含信息为: 进程信息 崩溃进程相关信息,比如崩溃报告唯一标识符、唯一键值、设备标识; 基本信息 崩溃发生日期、iOS 版本; 异常信息 异常类型、异常编码、异常线程...除了崩溃率,你还可以在这个平台上能查看次数、用户数等趋势。下图展示是某一个 App 崩溃在不同 iOS 系统、不同 iPhone 设备、App 版本占比情况。...同时,每个崩溃也都有自己崩溃趋势图、iOS 系统分布图等信息,来辅助开发者跟踪崩溃修复效果。...小结 ---- 学习完今天这篇文章,我相信你就不再是只能依赖现有工具来解决线上崩溃问题 iOS 开发者了。在遇到那些工具无法提供信息崩溃场景时,你也有了自己动手去收集崩溃信息能力。...如果觉得不错,素质三连、或者点个「赞」、「在看」都是对笔者莫大支持,谢谢各位大佬啦~ 推荐阅读 iOS 微信支付开发(更新版) iOS 支付宝支付开发(更新版) 了解「网罗开发」领书籍、源码 如有问题请留言或扫码加微信交流

2K20

iOS 崩溃排查技巧:如何获取系统库源码

作者:酷酷哀殿 APP 崩溃会导致用户体验下降,严重时甚至会导致用户卸载 APP。我希望从实际问题中去分享一些我日常工作上小技巧,希望可以帮助到大家。...今天要分享是「如何获取系统库源码」,问题源自于一位朋友遇到了一个系统库相关 crash,一直无法定位到具体原因,所以想了解一下「如何根据 iOS 崩溃日志获取对应系统库源码」,正好我之前也遇到过类似的问题...如下,我们从官方文档 Examining the Fields in a Crash Report 截取部分标准崩溃日志进行讲解。...所以,我们只能下载到 syslog-377.40.1.tar.gz 总结 本文分享了两种特殊技巧定位崩溃日志对应源码。 如果有读者发现了其它方案,欢迎加入我们微信群,一起参与讨论。...关注我们 我们是「老司机技术周报」,每周会发布一份关于 iOS 周报,也会定期分享一些和 iOS 相关技术。欢迎关注。

1.3K10
领券