在使用CocoaPod的Xcode工程中断点没有调试信息的问题跟进

原创 2017年03月03日 12:17:13

通常客户端产品至少都会有Debug和Release两种编译配置,在编译Release版本中会进行一些优化,以减少最终产品的体积。
比如,在Release版本中会对代码执行步骤进行优化(如O1、O2等),这会导致有些代码被优化省略掉,有时无法单步调试;另外就是会去掉符号信息,这会导致断点调试时没有符号信息,所以才会有CallStack的捕获和解析内容

由于千牛iOS端会有不同版本,分别面向内部开发者、外部ISV以及最终用户。尤其是在集成QAP项目后需要提供一个专门的开发调试版本给QAP开发者,所以新增了一个QAPDistribution Scheme,并且这个Scheme是从Debug Scheme复制过来的,所以按道理是可以进行调试、查看符号信息的。结果在使用这个Scheme进行开发调试的过程中发现符号信息缺失,控制台输出如下信息:

AppName was compiled with optimization - stepping may behave oddly; variables may not be available.

这就给我们排查问题带来不便。虽然可以切换成Debug来调试排查,但由于给ISV的版本不是Debug的,所以环境不一致,可能会导致一些遗漏。于是我再次确认了下编译配置信息:

screenshot.png

确实和Debug是一致的,这就带来了困惑。
后来进一步发现在千牛自身代码中是有符号信息的,但是跟进到Pod依赖中就缺失了,所以怀疑是不是Pod工程的编译配置有问题:

screenshot.png

screenshot.png

发现果然Pods工程的编译配置是有对QAPDistribution Scheme进行优化的。那么问题来了,如果我手动修改一下,之后再进行pod update是不是又会复原?验证了下果然如此,所以只能通过Pod本身的配置来解决问。在网上搜了下,有如下解决方案

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    if config.name.include?("QapDistribution")
      config.build_settings['GCC_OPTIMIZATION_LEVEL'] = '0'
    end
  end
end

screenshot.png

经验证有效。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

来淘宝的这一年:前篇、生活和工作

Jason Lee http://blog.csdn.net/jasonblog http://weibo.com/jasonmblog 我犹豫着要用“这一年”还是“这半年”的字眼。距离...

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

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

从NSTimer的失效性谈起(一):关于NSTimer和NSRunLoop

一、NSTimer的失效性在iOS中要设置一个定时器的通常做法是调用如下API:+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)...

iOS中的图像处理(二)——卷积运算

关于图像处理中的卷积运算,这里有两份简明扼要的介绍:文一,文二。 其中,可能的一种卷积运算代码如下: - (UIImage*)applyConvolution:(NSArray*)kernel...

iOS中的图像处理(三)——混合运算

有时候,单独对一张图像进行处理是很难或者根本达不到我们想要的效果的。一个好的滤镜效果的诞生,往往要经过很多复杂步骤、细致微调、图片应用效果观察以及很多图层叠加。 我在JSWidget上发现了一些常用...

随手记今天跟的几个iOS项目代码的问题

休了一阵子假期,今天刚回来上班,项目代码已经有挺大的变化了,我就先体验、发现、跟进问题。 第一个问题是点击某个cell就挂掉的现象,同事表示必现但挺神奇。由于挂掉的时候没有啥有意义的信息,所以先简单...

iOS中线程Call Stack的捕获和解析(二)

上接iOS中线程Call Stack的捕获和解析(一)。1. 部分参考资料做这一块时也是查阅了很多链接和书籍,包括但不限于: 《OS X ABI Mach-O File Format Referenc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)