若一个App没有加入Crashlytics或者Buggly这些崩溃日志监控,那么我们在App崩溃的时候如何获取崩溃信息呢?

此时我们可以通过symbolicatecrash工具对手机日志来进行分析定位,需要以下一些步骤:

一、获取crash日志文件

  1.手机直接获取日志  

    在手机 设置->隐私->分析->数据分析 中找到对应App(文件名为App设置的product name),打开文件,右上角可以分享导出文件,分享出来的文件改一下后缀为.crash

  2.使用iTools导出日志

    使用iTools的工具箱里面的崩溃日志导出对应的.ips文件,改后缀为.crash

  3.使用Xcode导出

    设备连接Xcode,选择“Window->Devices and Simulators”,选择左侧设备,点击中间的“View Device Logs”,同理,选择对应App(文件名为App设置的product name),右键“Export Log”即可,此处导出的文件为.crash文件。

二、获取dSYM文件

  1.Xcode获取

    Xcode在archives时候,都会生成一个对应的dSYM文件,我们直接去获取app对应的dSYM文件就好;打开App工程,点击“Window->Organizer”,里面有你此工程archives过的记录,找到对应的,右键“show in finder”,对应文件右键"显示包内容",在dSYM文件夹下的.app.dSYM就是我们要获取的dSYM文件了。

  2.App Store Connect获取

    如果App已经上架,并在上架的时候选择提交过dSYM,那么还可以从App Store Connect获取,登录选择App,进入“活动”页签,“所有构建版本”,选择对应版本,点击app版本号,会出现包的详细信息,右下角有“包含符号”,若有提交的话,此处可以下载dSYM文件

三、symbolicatecrash工具

  symbolicatecrash工具是Xcode自带的工具,我们在中断输入: find /Applications/Xcode.app -name symbolicatecrash即可找到工具

四、crash日志分析

  将crash文件、dSYM文件以及symbolicatecrash工具拷贝到同一个目录,cd进入此目录,然后输入命令:

  ./symbolicatecrash (你导出的崩溃日志).crash (导出的dSYM文件).app.dSYM > (解析后的crash文件).crash

  ps:运行上面的命令后可能会报错:“Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53.”,如果出现错误,再输入:export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

  接着再输入一次 ./symbolicatecrash (你导出的崩溃日志).crash (导出的dSYM文件).app.dSYM > (解析后的crash文件).crash 这个命令就可以了。

iOS symbolicatecrash工具crash日志分析的更多相关文章

  1. iOS crash日志分析

    iOS crash日志分析 一. 寻找crash文件:手机崩溃后的ips或者crash文件(ips文件可以直接修改成crash文件,直接改后缀名就可以了),这里说下如何拿到crash文件 1. 把运行 ...

  2. Crash日志分析

    从Crash文件出发解决bug的一般步骤,分三步: a, 获取设备上的崩溃日志. b, 分析崩溃日志,找到报错位置(定位到函数和代码行数). c, 打开代码,改bug. 1, 获取设备日志 1. 在可 ...

  3. iOS应用的crash日志的分析基础

        Outline如何获得crash日志如何解析crash日志如何分析crash日志     1. iOS策略相关     2. 常见错误标识     3. 代码bug 一.如何获得crash日志 ...

  4. iOS 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)

    时间2013-08-20 12:49:20 GoWhich原文  http://www.gowhich.com/blog/view/id/343 苹果官方 Crash文件分析方法 (iOS系统Cras ...

  5. Android Native crash日志分析

    在Android应用crash的类型中,native类型crash应该是比较难的一种了,因为大家接触的少,然后相对也要多转几道工序,所有大部分对这个都比较生疏.虽然相关文章也有很多了,但是我在刚开始学 ...

  6. ios crash 日志分析

    以下内容来自网络 https://coderwall.com/p/ezdcmg/symbolicating-an-ios-crash-log-without-the-original-dsym-fil ...

  7. iOS开发工具-网络封包分析工具Charles

    转自唐巧的技术博客:http://blog.devtang.com/blog/2013/12/11/network-tool-charles-intr/ Charles是在Mac下常用的截取网络封包的 ...

  8. iOS开发工具——网络封包分析工具Charles

    简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使 ...

  9. [转] iOS开发工具——网络封包分析工具Charles

    简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使 ...

随机推荐

  1. hdu 2899 Strange fuction——模拟退火

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2899 还可三分.不过只写了模拟退火. #include<iostream> #include& ...

  2. flask之Jinja2

    Jinja2 is a library found at http://jinja.pocoo.org/; you can use it to produce formatted text with ...

  3. jenkins jacoco

    1.pom中加jacoco依赖 <dependency> <groupId>org.jacoco</groupId> <artifactId>jacoc ...

  4. Mysql 关键字-保留字

    ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE C ...

  5. RabbitMQ 四种Exchange

    AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列.生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机.先由Exchange来接收,然后Exchang ...

  6. MySQL binlog 自动备份脚本

    MySQL binlog 自动备份脚本 1 利用shell进行备份 #!/bin/sh #mysql binlog backup script /usr/local/mysql/bin/mysqlad ...

  7. C# Math.Round

    不能直接调用Math.Round方法的,这可和Java的不一样哦Math.Round这个函数的解释是将值按指定的小数位数舍入,并不就是四舍五入.这种舍入有时称为就近舍入或四舍六入五成双 C# code ...

  8. react-router4.x 组件和api介绍

    react-router实用4.2.0 react-router非常复杂整体,比vue-router强大很多,好好研究,对你自身能力提高很有帮助 安装 cnpm install react-route ...

  9. ghld data format

    %CTF: 1.00%FileType: PROF strp "VelocityProfile"%PROFSpec: 1.00 2006 00 00%Manufacturer: C ...

  10. 1106SQLserver基础--变量、运算符的使用,if...else,while语句

    数据库---变量(对数据库中的数据没有任何影响) 作用:临时存储数据的作用,起一个衔接的作用,为了方便理解存储过程. 例:Declare @hello varchar(20) Set @hello=’ ...