1.dSYM 文件的原理
dSYM(Debug Symbols)文件是 iOS 和 macOS 开发中用于存储调试符号的文件。它包含了应用程序编译时生成的调试信息,如函数名、类名、行号等。这些信息在开发和调试过程中非常有用,但在发布版本中通常会被剥离以减小应用体积。
当应用崩溃时,崩溃日志中记录的是内存地址而不是具体的代码行。为了将这些内存地址转换为可读的代码行,需要使用 dSYM 文件。dSYM 文件与特定的应用版本和构建配置相关联,因此必须使用与崩溃日志匹配的 dSYM 文件。
2.获取 dSYM 文件
打开 Xcode:选择 Window -> Organizer。
在 Archives 选项卡中,选择相应的归档版本。
右键点击归档版本,选择 Show in Finder。
在 Finder 中,右键点击 .xcarchive 文件,选择 Show Package Contents。
在 dSYMs 文件夹中可以找到 dSYM 文件。
3. 符号化崩溃日志
使用 symbolicatecrash 工具:
- 找到 symbolicatecrash 工具的路径,通常在 Xcode 的开发者目录中,打开终端,使用命令:
find /Applications/Xcode.app -name symbolicatecrash -type f
//输出如下结果(两个路径A/B): /Applications/Xcode.app/Contents/SharedFrameworks/AssetRuntime/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
- 设置 DEVELOPER_DIR 环境变量:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
- 使用 symbolicatecrash 工具符号化崩溃日志(必备的3个文件):
1.xxx.crash 后缀名的文件
2.xxx.app.dSYM 后缀名的文件
3.xxx.app 文件
/path/to/symbolicatecrash /path/to/crashlog.crash /path/to/YourApp.dSYM > symbolicated.crash
- 查看符号化后的崩溃日志文件 symbolicated.crash,其中包含了具体的代码行和崩溃原因。
使用 Xcode查看崩溃日志:
打开 Xcode,选择 Window -> Devices and Simulators。
在 Devices 选项卡中,选择已连接的设备,点击 View Device Logs。
将崩溃日志拖放到 Xcode 中,Xcode 会自动尝试符号化日志。
4. 自动符号化
通过 iTunes Connect:如果应用通过 TestFlight 分发,崩溃报告会自动上传到 iTunes Connect,并自动符号化。
通过第三方工具:如 Firebase Crashlytics、Sentry 等,可以自动上传 dSYM 文件并符号化崩溃日志。
总结
-
生成 dSYM 文件:确保在 Xcode 的构建设置中启用了 dSYM 文件的生成,并在 Release 模式下构建应用。
-
获取 dSYM 文件:通过 Xcode Organizer 或手动从构建输出目录中获取 dSYM 文件。
-
符号化崩溃日志:使用 symbolicatecrash 工具或 Xcode 将崩溃日志符号化,获取具体的代码行和崩溃原因。
-
自动符号化:通过 iTunes Connect 或第三方工具自动上传和符号化崩溃日志。
通过这些步骤,开发者可以有效地利用 dSYM 文件分析和修复 iOS 应用中的崩溃问题。
引用如下:












网友评论