首页 > 其他分享 >iOS获取.ips文件并通过Xcode自带的symbolicatecrash解析

iOS获取.ips文件并通过Xcode自带的symbolicatecrash解析

时间:2024-05-17 16:55:59浏览次数:25  
标签:文件 crash symbolicatecrash Xcode xxx ips 日志

文章讲述如下问题:

1. 如何获取.ips文件

2.如何获取symbolicatecrash

3.解析前的准备工作

4.如何将.ips转为.crash文件

5.如何使用symbolicatecrash解析.crash文件

6.异常错误处理


1.如何获取.ips文件?

在 iOS 中,你可以通过几种方式找到应用程序的 .ips 文件,具体取决于你是在开发过程中还是从用户设备上获取崩溃日志。

在开发过程中

  1. 在 Xcode 中查看:如果你在 Xcode 中运行应用程序时发生崩溃,可以在 Xcode 的导航器中查看和导出崩溃日志。在 Navigator 面板中展开 "Devices and Simulators",选择连接的设备,点击“Open Recent Logs”,此时会进入 "Device Logs" ,找到项目相关的崩溃日志。

  2. 在设备的 Console App 中查看:在 macOS 的 Console 应用程序中,你可以连接设备并查看设备的系统日志,包括应用程序的崩溃日志。

从用户设备上获取

  1. 使用设备的崩溃日志:如果用户在应用程序崩溃时选择了“发送报告”或“不发送”选项,你可能会收到一个带有 .ips 扩展的崩溃日志文件。用户通常可以通过设备设置中的“隐私”->“分析与改进”->“分析数据”找到,一般app的崩溃日志名为“项目名xxx-发生时间.ips”

  2. 从 iTunes 或 Finder 备份中提取:如果用户同步设备或使用 iCloud 进行备份,你可能会在 iTunes 或 Finder 备份中找到崩溃日志文件。

找到日志文件后,在电脑上新建文件夹以存放.ips崩溃日志(为理解后续操作,假设此文件夹名称为“A”)

 

2.如何获取symbolicatecrash?

 1).打开终端,输入如下指令

find /Applications/Xcode.app -name symbolicatecrash -type f

终端会输出symbolicatecrash所在路径,如图所示

 2). 复制地址进入到Resources文件夹下

cd /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources

3).打开文件夹,然后找到并找到symbolicatecrash

open .

效果和终端指令如下图所示:

 4).将symbolicatecrash复制到步骤1新建的A文件夹下(注:为了方便操作,最好将symbolicatecrash放到新文件夹下,后续在此文件夹还会放入.ips文件和dsyms中的xxx.app.dSYM)

 

3.解析前的准备工作

步骤1和2新建的文件夹A,目前已存放了.ips崩溃日志和symbolicatecrash。需要解析日志,还需要重要的dSYM,也就是符号表。

那么如何获取“项目名xxx.app.dSYM”呢?

废话不多说,直接上干货~

打开Xcode,导航栏选择“Window” -> “Organizer”,在“Archives”中找到崩溃的app版本,鼠标右击,选择“Show in Finder”,选择"xxx.xcarchive",鼠标右击,选择“显示包内容”,打开“dSYMS”,找到"项目名xxx.app.dSYM"文件,复制此文件至步骤1新建的文件夹A。

/////////////////////////////到此所有准备工作已完成!/////////////////////////////

 

4.如何将.ips转为.crash文件

因为苹果在Xcode13.3已经废弃了.crash文件,而symbolicatecrash只能解析.crash,所以需要利用"AppleCrashScripts"将.ips转换为.crash。

1). 下载AppleCrashScripts; https://github.com/tomieq/AppleCrashScripts

2). 进入下载的AppleCrashScripts-master文件夹,执行如下代码

进入文件夹  cd AppleCrashScripts-master 
swift convertFromJSON.swift -i xxx.ips -o xxx.crash

注:xxx.ips为步骤1获取的.ips文件,xxx.crash为你转换后的.crash文件

 

5.如何使用symbolicatecrash解析.crash文件

通过终端进入到新建的文件夹A目录下,执行如下代码

./symbolicatecrash /xxx/xxx.crash /xxx.app.dSYM > crash.log

代码解释: 

"/xxx/xxx.crash"为步骤4转换后的.crash文件的绝对路径
"/xxx.app.dSYM" 为步骤3获取的符号表文件路径
"crash.log"为解析后的崩溃日志名(文件名和后缀可以自定义.log,.txt都行)

此时如果没有报错的话,crash.log就可以看到带崩溃的具体函数和崩溃在哪一行了
如果报错请继续往下看

6.异常错误处理
错误1:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.

解决方案:

export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

再次执行:

./symbolicatecrash /xxx/xxx.crash /xxx.app.dSYM > crash.log
错误2:
No crash report version in /xxx.crash at ./symbolicatecrash line 1365.

 

这是因为直接用symbolicatecrash解析.ips文件,而非使用转换后的.crash文件解析导致。针对此问题请执行步骤4
 

好记性不如烂笔头,网上也有很多类似的资料可以借鉴。
本人也是借鉴了很多博主的资料,然后结合自己实际尽可能详细的解释每行代码的作用,如有不解或者疑问,请留言~
到此文章已结束,特别感谢这两位博主提供的参考文章,链接如下:
https://www.cnblogs.com/china-fanny/p/7610487.html
https://cloud.tencent.com/developer/article/2345755

另外:书写不易,如果本文解决了您的问题,还望不要吝啬star鼓励一下~
感谢您的阅读!!!
谢谢!!!

标签:文件,crash,symbolicatecrash,Xcode,xxx,ips,日志
From: https://www.cnblogs.com/jersycoder/p/18198072

相关文章

  • LTSPICE Tips
    快捷键:   ①瞬态分析:看电压、电流、功率,类似示波器     ②交流分析:看频响增益损耗-3dB带宽 ACanalysis里的扫频参数:list:确定某一频点进行分析linear:线性的每个扫描频点的坐标点间距相等octave八倍频、decade十倍频:倍频是频程的意思,即下一个坐标点......
  • macOS Ventura 13.6.7 (22G720) 正式版发布,ISO、IPSW、PKG 下载
    macOSVentura13.6.7(22G720)正式版发布,ISO、IPSW、PKG下载5月14日凌晨,macOSSonoma14.5发布,同时带来了macOSVentru13.6.7安全更新。macOSVentura13.6及更新版本,如无特殊说明皆为安全更新,不再赘述。请访问原文链接:https://sysin.org/blog/macOS-Ventura/,查看最......
  • macOS Monterey 12.7.5 (21H1222) 正式版发布,ISO、IPSW、PKG 下载
    macOSMonterey12.7.5(21H1222)正式版发布,ISO、IPSW、PKG下载5月13日凌晨,macOSSonoma14.5发布,同时带来了macOSVentru13.6.7和macOSMonterey12.7.5安全更新。本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者......
  • 在Linux中,什么是入侵检测系统(IDS)和入侵防御系统(IPS)?
    在Linux环境中,入侵检测系统(IntrusionDetectionSystem,IDS)和入侵防御系统(IntrusionPreventionSystem,IPS)是两种关键的网络安全组件,用于增强网络的安全性和防护能力。下面是对这两个概念的详细解释:1.入侵检测系统(IDS)入侵检测系统是一种监控工具,其主要职责是实时或定期监控......
  • macOS Sonoma 14.5 (23F79) 正式版发布,ISO、IPSW、PKG 下载
    macOSSonoma14.5(23F79)正式版发布,ISO、IPSW、PKG下载2024年5月14日凌晨,macOSSonoma14.5发布,本更新提供了重要的错误修复,建议所有用户安装。随着版本14.5的发布,macOSSonoma的更新使命已基本完成,不出意外此版本将成为推荐版本,适合所有Mac全新安装。期待WWDC......
  • react native 项目使用 Xcode 打包上架 App Store
    一、创建证书、标识符和描述文件等:1.前提条件可正常运行和打包的代码、Apple开发者账号点击注册Apple开发者账号注册完进入页面可以看到证书、标识符和描述文件创建入口2.创建AppID点击Identifiers旁边的加号选择AppIDs,点击Continue。选择App,点击Conti......
  • Keil 和Eclipse 软件编译环境下bin和ram以及flash大小及关系
    一.keil软件编译环境ProgramSize:Code=65228 RO-data=5302 RW-data=48 ZI-data=1681keil软件编译后会出现上面的提示,其意义如下:Code:指程序中代码的字节数RO-data:指程序中定义的常量字节数RW-data:程序中已初始化的变量字节数ZI-Data:程序中未初始化的变量字节数......
  • libvips 一个最好用的高性能、低内存、跨平台的图片处理库
    一个可以媲美OpenCV的开源库,它具有高性能、低内存、跨平台、无内存泄漏的特性。项目简介这是用C++开发的图像处理库,支持的API超过300多个,涵盖了算术、颜色、图片转换、卷积、形态、马赛克、合并、切割等。支持多种图像格式,包括:JPEG、JPEG2000、JPEG-XL、TIFF、PNG、WebP、HEIC......
  • 「Java开发指南」如何用MyEclipse搭建GWT 2.1和Spring?(一)
    本教程将指导您如何生成一个可运行的GoogleWebToolkit(GWT)2.1和Spring应用程序,该应用程序为域模型实现了CRUD应用程序模式。在本教程中,您将学习如何:安装GoogleEclipse插件为GWT配置一个项目搭建从数据库表到一个现有的项目GWT编译部署应用程序注意:自定义Spring代码......
  • C语言转写成MIPS指令集汇编以及MIPS指令集汇编中函数调用时栈的变化
    一、问候语欢迎你来到我的博客!二、C语言代码分析  这段C语言代码共有3个函数组成。set_array函数传入1个int类型的变量num,并创建了1个int类型临时变量i和1个临时int类型数组array,里面含有10个单位,此函数主要目的是调用compare函数,并将num和i传入该函数中,得到其函数返回值......