iOS Monkey自动化测试崩溃地址符号化

最近公司测试组同事在用Monkey搞iOS自动化测试,期间产生一些崩溃信息,反馈到开发这边都是.ips文件。.ips文件的都是一些堆栈地址,无法定位到我们应用的某一行。而且在bugly和友盟上的崩溃信息也是同样(已上传dYSM文件),没办法,只能自己去解析崩溃信息文件了。。。
这个转化的过程有一个专业术语,叫符号化,就是讲这些堆栈地址转化为我们可识别的一些类名、方法名等符号信息。
iOS Monkey自动化测试崩溃地址符号化_第1张图片
符号化前.png
iOS Monkey自动化测试崩溃地址符号化_第2张图片
符号化后.png

网上一般说是有两种方法:

1、命令行解析ips
2、使用Xcode解析ips/crash。
我主要采用的是第一种方法:利用命令行解析ips。

操作的过程如下:

1、获取.xcarchive文件。

我们打包时的.xcarchive文件,具体获取方法是打开xcode,点击 【window】 --> 【Organizer】,进入到我们打包Archives的管理界面,这个界面有我们之前打的包的所有记录,选择测试App对应的App以及打包的版本,单击选中的Archive选择 show in Finder,然后将对应的.xcarchive文件拷贝出来,放在桌面。

2、具体的解析过程(需要命令行操作)

2.1 在桌面上新建一个文件夹,命名随意即可,我这里叫signifying
2.2 拷贝崩溃信息的.ips文件放到signifying文件夹中,并将.ips文件后缀名修改为.crash
2.3 前往文件夹 【/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash】,找到symbolicatecrash。然后把symbolicatecrash拷贝到signifying文件夹中。

iOS Monkey自动化测试崩溃地址符号化_第3张图片
屏幕快照 2019-07-08 下午3.56.34.png

2.4 从.xcarchive文件里,右键点击【显示包内容】,从Products/Applications里面拷贝.app文件(这里可能没有后缀,直接拷贝Applications文件夹内的文件),放到signifying文件夹中。
2.5 同样右键点击【显示包内容】,拷贝dSYM文件下的AppID.dSYM文件(这里可能有很多.dSYM文件,选择你App的AppId对应的“你应用的AppID.dSYM”),放到signifying文件夹中。
iOS Monkey自动化测试崩溃地址符号化_第4张图片
2.4-2.5

此时,你会看到你桌面的文件夹下有下图四个文件:
iOS Monkey自动化测试崩溃地址符号化_第5张图片
屏幕快照 2019-07-08 下午4.08.27.png

2.6 打开终端,cd到signifying文件夹中
2.7 输入命令 ./symbolicatecrash "crash文件的绝对路径""dSYM的绝对路径" > signifying.crash ,敲回车键。

Tips:(如果2.7步骤之后,终端报错 Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69...。终端中再输入export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer",回车,然后再次输入2.7步骤中的命令,回车即可)。

这个时候你会发现你的signifying文件夹中多了一个signifying.crash文件,它就是我们开头提到的符号化之后的文件,就可以看到具体是哪个类,哪一行崩溃的信息了。大概步骤及过程就是这样。


iOS Monkey自动化测试崩溃地址符号化_第6张图片
终端命令.png

你可能感兴趣的:(iOS Monkey自动化测试崩溃地址符号化)