一、静态分析
Xcode -> Product -> Analyze 即可进行静态分析。
Xcode 静态分析能发现的问题主要有:
(1)逻辑缺陷,例如访问未初始化的变量或空指针的解引用;
(2)内存管理缺陷,如内存泄露;
(3)无用存储缺陷(永不会被访问的变量);
(4)因未遵从项目用到的框架(frameworks)或类库(libraries)所规范的而导致的API使用缺陷;
通过 Xcode Analyze 发现一些 error 之后,可以找开发讨论解决问题;Xcode 中左边的导航面板可以查看具体的 error 信息(蓝色的即为 error,黄色的为 warning)。如下图所示:
静态分析.png
二、内存检查
1.Xcode -> Product -> Profile 打开模板选择界面;
2.选择 Leaks并点击 Choose
leak1.png leak2.png leak3.png
3.选择好真机或者模拟器,找到需要检测的app后,点击 小红点 即可开始检测, 检测的内存泄漏后,Leaks check 会在内存泄露的地方标红,此时应该 点击暂停,来定位内存泄漏的地方
leak4.png leak5.png
4.定位内存泄漏:
4.1选中出现内存泄露的时间区间
leak6.png
4.2切换成 Call Tree 视图
leak7.png
leak8.png
4.3在Call Tree 菜单中勾选 invert Call Tree 和Hide System Libraries
leak9.png
leak11.png可以看到小人头像部分,就是内存泄漏的地方,点击右侧的Heavlest stack Trace的小人可以快速展开左侧的折叠部分,双击左侧泄漏的方法可以快速定位到项目源代码部分
leak10.png
如果没有出现小人头像部分,而是地址符号,则检查下 Debug Information Format是否设置为 DWARF With dSYM File
leak12.png
网友评论