来自 : http://www.cnblogs.com/siasyl/p/7339013.html
参考文章:http://www.qingpingshan.com/rjbc/ios/230949.html
1.桌面新建一个文件夹,自行命名(crash);
2.找到Xcode的位置,右键"显示包内容",根据以下目录找到symbolicatecrash工具:
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash,并拷贝出来,放到刚才创建的(crash)文件夹中;
3.把苹果审核返回的崩溃日志下载,也放到刚才创建的crash文件夹中;
4.打开Xcode,选择Window-->Orgianzer找到对应的Archive文件,
点击右边的Download dSYMS,
如果提示 No dSYMs were found for Version xxx Build xxx ,
可以右键点击对应的Archive文件,show in finder,然后右键显示包内容,找到dSYMs文件夹下的对应dYSMs文件,拷贝到刚才的文件夹下;
如果文件夹为空,那么就要去检查Xcode设置,在Xcode --> Build Setting 搜索 "debug information format",将"DWARF"修改为"DWARF with dSYM File",之后重新打包就可以找到了;
5.打开终端,进入刚才的文件夹(cd 你自己的刚才创建的文件夹路径)
1
|
cd /Users/xxx/desktop/crash |
6.接着输入以下命令
1
|
./symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash. log
|
./symbolicatecrash ./1.txt ./MyAppName.app.dSYM > 1.crash
注:1.txt为苹果返回的崩溃日志的名字,MyAppName.app.dSYM为你自己拷出来的dSYM文件的名字,1.
crash
为你要输出的日志文件的名字
执行命令之前的crash文件夹内(上面三个txt格式的为苹果返回的崩溃日志文件)
执行命令之后(.crash文件为生成的日志文件)
7.如果提示"DEVELOPER_DIR" is not defined at xxxxxxxxxxxxxx,那么输入以下命令,如果没有则跳过
1
|
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer |
8.然后重新输入第6步的命令
1
|
./symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash. log
|
9.打开日志文件进行分析
10.根据提示找到SportMainController中的onReGeocodeSearchDone方法
11.发现是在else中截取字符串时出现问题,有可能字符串长度为0,这样substringToIndex:-1就导致程序崩溃了,加一个判断条件,问题解决
相关推荐
"A crash log symbolicating Mac app" 是一个针对这个问题而设计的图形化工具,它能够将这些晦涩难懂的十六进制地址转换为可读性强的函数名和行号,从而帮助开发者快速定位问题所在。 首先,让我们来了解什么是符号...
1. 将用户反馈的Crash Log与对应的dSYM文件一起导入分析工具。 2. 工具会解析Crash Log中的内存地址,并使用dSYM文件中的符号信息进行映射。 3. 映射完成后,崩溃日志将显示源代码行和函数名,帮助开发者理解崩溃...
首先,当iOS应用发生崩溃时,系统会生成一个奔溃日志(crash log)。这个日志包含了奔溃时刻的堆栈信息,即一系列函数调用的地址。这些地址是十六进制形式,看起来可能不太直观,但它们实际上是程序执行时内存中的...
- **Crash Log分析**:当应用崩溃时,Crash Log 能够提供非常有价值的信息。这部分内容将教会读者如何解读 Crash Log,定位问题所在。 #### 六、发布与营销策略 - **App Store Connect使用**:App Store Connect 是...
2. **自动收集崩溃日志**:苹果的内置框架如`ExceptionHandling`和`OSLog`部分地支持崩溃日志的自动收集。然而,为了确保用户在遇到崩溃时能将信息发送到服务器,开发者通常需要编写自定义代码,利用`...
- 验证崩溃报告中的 UUID:在崩溃报告 (crash log) 中查找 `Incident Identifier`,其值应该与 dSYM 文件或 app 的 UUID 匹配。 ### pthread #### pthread API - **基本概念**: - pthread 是 POSIX 线程的缩写,...
此外,可以在设备的设置中启用“设置 > 隐私 > 诊断与用量”,这样苹果会收集崩溃报告供开发者查看。 3. **真机运行**:如果是在未连接Xcode的情况下运行应用,可以通过设备的系统日志(例如使用`Console.app`或`...
在iOS开发过程中,当应用程序崩溃时,系统会生成一个名为`crash log`的文件,其中包含了大量的十六进制地址和堆栈信息。这些日志对于开发者来说很难直接理解,因为它们没有转换成源代码行。为了将这些崩溃日志转化为...
总的来说,"MacSymbolicator"是iOS开发中必不可少的工具,它使得解析和理解Crash Log变得更加容易。通过理解和掌握如何使用.dSYM文件,开发者能更高效地定位和修复应用中的问题,提升产品的稳定性和用户体验。在实际...
当应用在真机上崩溃时,Xcode会生成Crash Log,记录导致崩溃的栈轨迹。开发者需要分析这些日志以定位问题原因。 10. **持续集成与部署**: 使用Xcode Server或第三方工具如Jenkins,可以实现持续集成和自动化部署...