0%

iOS 崩溃解决方案

行文环境
- Xcode 9.3
- Swfit 4.1
- iOS 11
- Bugly

崩溃分析平台(Bugly)

崩溃平台大多数问题就是缺失dsyMs文件,只要找到crash log对应的dsyMs文件上传重新符号化(Re-symbolicate)即可

找到dsyMs文件的方法

本地文件

mdfind "com_apple_xcode_dsym_uuids == <UUID>"
在bundle打包的电脑上使用上面的命令查找对应UUID的dsyMs文件

xcarchives

在bundle打包的电脑上也可以在Xcode Orgnizer里找到对应Archive

1

2

3

下载 Bitcode dSYMs

第一种方式是在Xcode Orgnizer

第二种方式是在iTC,已发布的bundle推荐使用这种方式

Crash log

崩溃分析平台无法定位的崩溃可以通过直接分析crash log文件

获取设备的crash log

打开Xcode Device页面,并导出crash log

dysMs文件

打开crash log,第一行就是对应bundle的UUID
Incident Identifier: C2FB3056-8C2E-4141-800F-1E575858998D

使用前述的方式找到dysMs文件

符号化

使用Xcode自带的一个命令行工具来符号化crash log文件

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

在这个路径找到该工具,将crash log、symbolicatecrash和dyMs文件夹zip包拷贝到同一目录下

cd到该目录,运行如下命令
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

符号化
./symbolicatecrash myCrash.crash > SymbolicatedM.crash

done

更多

符号化之后的崩溃分析不属于本文范围

扩展阅读