在使用CocoaPod的Xcode工程中断点没有调试信息的问题跟进-阿里云开发者社区

开发者社区> 思禽> 正文

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

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

通常客户端产品至少都会有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

经验证有效。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 问题(转)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-11: ordinal not in range(128) 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 转自:http://cooler1217.
1081 0
使用CocoaPods过程中的几个问题
当把CocoaPods生成的workspace移动到上层目录时,需要改下Pods.xcconfig和工程里的一些设置,就通常没什么难度。 当遇到这个问题时: Could not automatically select an Xcode project.
783 0
中国电子信息行业联合会专家委员会主任董云庭:智领未来,科技创新破局经济新常态
日前,由软交所举办的“智领未来”新经济论坛在成都高新区举办,创头条(Ctoutiao.com)受邀参加了本次新经济论坛。在本次经济论坛上,中国电子信息行业联合会专家委员会主任董云庭发表了围绕着“智领未来”的主题演讲。
42 0
【iOS开发】Xcode 7 Simulator 问题小记
问题1:Xcode -> Preferences -> Downloads 点击下载按钮弹出错误提示框 这里我没有再重现当时 Xcode 弹出错误提示框的场景,大概是在你想要下载 iOS 8.x 的 Simulator 或者 iOS 9.0 Documentation 的时候,告诉你有个什么什么地址不安全,你是否仍然要下载模拟器,然后你跟 Xcode 说『是的,我仍然要下载』 的时候,就没有然后了。
739 0
+关注
思禽
一个写着几行代码的理工科文学青年
84
文章
34
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载