在开发过程中往往会遇见有个别用户或者测试人员反馈app的闪退现象,而项目一般集成的统计闪退的第三方库是笼统的统计了所有的闪退信息,无法去定位某一个用户提出的某一个时间点的某一个闪退问题,于是乎这个时候需要我们能快速的去获取指定用户提出的指定闪退,并能够解析闪退日志,快速的定位到问题。下面将自己的做法大概的做个总结(可能还有别的方法,但是我觉得下面讲述的方法已经足够了)。

一、收集闪退日志

先和用户确定iPhone是否打开如下设置(以iOS12.0的iPhone为参考):

设置->隐私->分析->共享iPhone分析->与应用开发者共享

只有打开了上述设置闪退日志才会被收集,然后进入设置->隐私->分析->分析数据,找到以自己项目开头拼接出现闪退大致时间点文件名的ips文件。

二、解析闪退日志

1.如果还能找到用户反馈有问题的app 当时打包时相对应的项目源码,那么就很简单了

获取到的.ips文件双击打开是没有解析的日志,现在需要修改后缀名为.crash,然后双击打开出现下面的弹窗
iOS

可以选中当时打包的项目,预览并且打开,这时候你会发现打开后的项目会显示闪退的地方。

没错,就是这么简单。不过前提条件是你还有当时打包的项目源码,不然要是用当前闪退所在文件改动过的源码,定位的位置是不对的。

2.不能找到打包时的项目源码,但是可以找到当时打包的dSYM文件

具体步骤:

1.首先在桌面新建一个文件夹crashFile,用于存放解析闪退日志用到的文件。

2.找到前面获取到的.ips文件,拷贝.ips文件放到crashFile中

3.获取symbolicatecrash文件。

找到当时打包所用的xcode(可能笔记本安装了好几个Xcode),然后进入下面的路径:/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

拷贝symbolicatecrash工具拷贝到crashFile中

4.获取dSYM文件

从当时打包的xcode->Window->Organizer->Archives找到当时的xcarchive文件,选中xcarchive文件右键点击【显示包内容】,拷贝dSYMs文件下的.dSYM文件,放到crashFile中。

至此,crashFile文件中总共有3个文件:.ips文件、symbolicatecrash工具、.dSYM文件。

  1. 打开终端,cd到crashFile文件夹中

  2. 输入命令

./symbolicatecrash Agent-2020-02-21-124913.ips Agent.app.dSYM > crash.log
这时候会发现crashFile文件夹下多了个crash.log文件

双击打开crash.log文件,你会发现崩溃信息已经成功解析

好了,大功告成!!!

下面将附上参考的地址(可以验证闪退的ips文件和dsym文件对应的app是否是同一个):

https://www.cnblogs.com/mukekeheart/p/9449189.html

https://hacpai.com/article/1533042075262

https://www.jianshu.com/p/e5ad706e4196

在开发过程中往往会遇见有个别用户或者测试人员反馈app的闪退现象,而项目一般集成的统计闪退的第三方库是笼统的统计了所有的闪退信息,无法去定位某一个用户提出的某一个时间点的某一个闪退问题,于是乎这个时候需要我们能快速的去获取指定用户提出的指定闪退,并能够解析闪退日志,快速的定位到问题。下面将自己的做法大概的做个总结(可能还有别的方法,但是我觉得下面讲述的方法已经足够了)。...
作为一名应用开发者,你是否有过如下经历? 为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作。它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会 闪退 ! 如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美。于是你打开代码准备修复 闪退 的问题……但是,从何处着手呢? 这时 iOS 崩溃 日志 派上用场了。在大多数情况下,你能从中了解到关于 闪退 的详尽、有用的信息。 通过本教程,你将学习到一些常见的崩溃 日志 案例,以及如何从开发设备和iTunes Connect上获取崩溃 日志
转自  http://www.weste.net/2013/5-20/91509.html 我们常常会遇到 iPhone 手机或者iPad平板上运行APP崩溃的问题,有时候打开某个APP,却一下子“ 闪退 ”了。有的再次进入就正常了,有些可能就再也进不去了。 对于开发者来说,这个绝对是头疼的问题。因为这些 日志 可能存在于用的设备里面。那么如何获取到 iOS 设备崩溃 日志 呢?这个提供一些简单的方法,共开发
1. 更新 Xcode 版本:确保你正在使用最新版本的 Xcode 。 2. 检查证书和配置文件:确保你已经正确地安装和配置了证书和配置文件。如果你不确定是否正确,可以在 Xcode 的“Window”菜单下选择“Devices and Simulators”,然后在左侧选择“Devices”选项卡,查看你的设备是否已经正确地安装了证书和配置文件。 3. 检查你的代码:检查你的代码是否有任何语法错误或逻辑错误。在 Xcode 中,你可以使用“Product”菜单下的“Clean”选项来清除项目并重新构建。 4. 检查插件:如果你在UniApp中使用了插件,请确保它们与 iOS 的版本兼容,并且已经正确地安装和配置了。 5. 检查设备:如果问题仅出现在某些特定设备上,请确保它们已经更新到最新版本的 iOS 和UniApp应用程序。 如果以上解决方案都无法解决问题,请尝试查看 Xcode 的控制台输出,以便找出更具体的错误消息和警告。 CSDN-Ada助手: 感谢您分享这篇博文!在Android开发中遇到错误是很常见的事情,但是解决错误并深入了解原因是我们进步的关键。非常期待您写下一篇博客,分享您是如何解决“error: style attribute ‘android:attr/enforceStatusBarContrast not found.”这个错误的,同时也可以分享一些关于Android主题样式的技巧和经验,帮助更多的开发者更好地掌握这方面的知识。祝您写作愉快! 2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city ), 博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的 TOP1 博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。 解决AndroidStudio控制台输出乱码 浅墨cgz: 这个类名多了一个下划线 解决AndroidStudio控制台输出乱码 解决了,开源项目导入androidstudio,还有一个问题不知道怎么办,D:\workplace\autojs\Auto.js\app\src\main\java\org\autojs\autojs\autojs\AutoJs.java:28: 错误: 找不到符号 import org.autojs.autojs.ui.log.LogActivity_; 符号: 类 LogActivity_ 位置: 程序包 org.autojs.autojs.ui.log 我的创作纪念日 CSDN官方博客: apktool 工具使用文档 浅墨cgz: 有用就好,很荣幸能帮到你 Error: Multiple substitutions specified in non-positional format; did you mean to add the formatted= error: style attribute ‘android:attr/enforceStatusBarContrast not found.