升级9.1后断点无效,参考:
http://blog.csdn.net/skylin19840101/article/details/72185975
Xcode中和symbols有关的几个设置
最终解决方法:各种常规项检查后,最后修改Deployment Postprocessing
:
解释下影响断点调试的几个选项
-
Product->Debug workflow 取消选中
Always Show Disassembly
: 选中时可以查看程序运行时的汇编代码,我们在调试代码时不需要查看汇编代码,那么可以取消,断点就会停在我们的代码上。 - 修改Generate Debug Symbols 为
YES
:
启用或禁用生成调试符号,也就是在程序编译时是否生成编译符号,如果设置为NO
,编译时无法生成断点调试符号。当然也可以通过Debug Information Level
等等其他选项控制debug的等级,感兴趣的话可以好好研究研究。 - Edit Scheme -> Run -> Debug executable 勾选:这个比较直观,就是是否使用调试程序运行。
-
TARGETS -> Build Settings -> Deployment Postprocessing:部署处理,会对其它选项生成的测试符号产生影响,这个其实在App瘦身时会用到,设置为
YES
时会删掉所有不必要的编译符号,也就包括调试符号,这样编译后的应用包会变小,安全性也会更好一点。之前Xcode都是默认为NO
,我发现Xcode9.1无论debug还是release都默认为YES
了,所以修改debug为NO
,才能使断点生效。