美文网首页
iOS导出与符号化崩溃日志

iOS导出与符号化崩溃日志

作者: ldldlkdldld | 来源:发表于2017-03-02 20:31 被阅读249次

    iOS符号化崩溃日志

    经常(偶尔)QA在测试的时候,APP发生了crash,此时相比APP的崩溃,更加崩溃的是开发。如果是必现的还好,但如果是偶现的话,此时就必须设法恢复现场,找到崩溃原因。

    崩溃日志导出

    恢复现场第一步是导出崩溃日志,导出日志的方式有两种。一种是通过Xcode导出,另外则是直接通过设备的Settings导出。

    通过Xcode导出崩溃日志

    直接用发生崩溃的设备连接Xcode,点击Xcode -> Window -> Devices,然后定位到发生崩溃的机器,找到对应的崩溃日志,并导出到Mac的文件系统。

    Xcode中导出崩溃日志

    通过设备Settings(设置)APP查看并导出崩溃日志

    通过Settings导出崩溃日志,不同版本的系统可能不同,以iOS 12为例,崩溃日志位于Settings -> Privacy -> Analytic -> AnalyticsData 下,日志名格式为AppName-XXXX-XX-XX.ips,可以根据崩溃时间点和发生崩溃的APP名称来定位,点击对应的崩溃日志,可以进入查看,然后通过导航栏的分享按钮通过AirDrop传送到Mac。

    通过设备导出崩溃日志

    崩溃日志符号化

    第二步是找到发生崩溃的测试包对应的dSYMs文件,这个要求每次打包以后要保存对应的dSYMs文件,否则没办法了。其次,很重要的一点,Xcode中必须要有对应版本系统的iOS DeviceSupport文件,否则符号化会失败。

    举个例子:比如发生崩溃的iPhone系统是iOS 8.1.1,那么路径/Users/username/Library/Developer/Xcode/iOS DeviceSupport/路径下也要有iOS 8.1.1的设备支持文件。

    将崩溃日志和dSYMs文件放到同一个目录下,然后采用symbolicatecrash命令进行符号化。symbolicatecrash是Xcode自带的符号化工具,但是不在系统的PATH内,因此运行该命令需要修改PATH变量,在终端执行如下命令:

    export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
    export PATH=$PATH:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/
    

    然后在终端中执行如下命令:

    symbolicatecrash XXX.crash -o YYY.crash
    

    其中XXX.crash是未符号化的日志,YYY.crash是符号化后的日志。

    相关文章

      网友评论

          本文标题:iOS导出与符号化崩溃日志

          本文链接:https://www.haomeiwen.com/subject/pyhcgttx.html