注意:xcode三大调试
1.代码调试的5大技巧
2..crash崩溃日志的调试方式
3.Instrument动态分析方式
一:代码的5大调试方式
1.Enable NSZombie Objects(开启僵尸对象)
Edit Scheme->Enable NSZombie Objects
2.对于所有异常添加Global BreakPoint(全局断点)
3.Static Analyzer(静态分析)
Product->Analyzer
4.Condational Breakpoints(条件断点)
就是右键编辑普通的断点,可以加条件判断
5.unrecognized selector send to instancd 快速定位
给添加全局断点类似:
1.在Debug菜单中Breakpoints->Create Symbolic Breakpoint
2.在Symbolic中填写如下方法签名
- -[NSObject(NSObject) doesNotRecognizeSelector:]
设置完成后再遇到类似的错误就会定位到具体的代码。
二:崩溃日志.crash调试方式
1.在桌面建立一个空的文件夹(crash),把崩溃对应版本的.app .app.dSYM文件copy到carsh文件夹里面.
2.找到崩溃日志,后缀名.crash文件
- 通过iTunes连接手机同步后就能在Mac应用 控制台 打开日志列表,目录是
- ~/Library/Logs/CrashReporter/MobileDevice
- 崩溃日志格式:项目名-2016-04-01-134057.crash
3.找到xcode自带的分析工具symbolicatecrash
- 找到symbolicatecrash文件可以在命令行下,执行以下命令(英文的单元号)
find /Applications/Xcode.app/Contents -name `symbolicatecrash` -type f
- xcode7.3之后symbolicatecrash在下面这个目录
- /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
4.把这四个文件都放到crash文件夹里面,执行命令
在当前crash命令下执行:symbolicatecrash xxx.crash .app.dSYM > test.txt
会在当前crash目录下面生成一个test.txt文件,打开就能看到.crash里面的地址变成了方法名。
注意:第一次执行报错
Error: "DEVELOPER_DIR" is not defined at /Users/fanxiangyang/Desktop/crash/symbolicatecrash line 69.
解决办法:命令行执行
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer