尝试进入AFNetworking代码会生成以下警告:
[Project Name] was compiled with optimization - stepping may behave oddly; variables may not be available.
当然,我无法调试代码。具体而言,我正在尝试调试UIImageView+AFNetworking
类别,这似乎是不可能的。更改代码没有任何效果(尝试过NSLog
等),当尝试进入编译器时转到汇编代码并将UIImageView+TVASTAFNetworking
显示为类别名称,这在代码库中的任何位置都不存在。
使用Xcode 7. iOS 9和8. Cocoapods(无框架)
更新我忘了提到Optimizer被设置为none
的发布和调试配置,我实际上使用Debug
配置。
更新2
Strip Debug Symbols
也关闭了。
这个错误发生在我身上两次,并且在每种情况下都是用于请求服务的URL参数中的错误。在一种情况下,URL在端口部分中有一些空间,在另一种情况下,某些可选值未被解包。
所以修复是为了确保请求的url格式正确。有关我的案例的更多信息,以及类似的报告相同的here。
我所做的就是清理(Product > Clean
)我的项目并再次运行它
这可能过于简单了,但是您是为Release或优化(从Swift或LLVM中删除符号)构建得太高了吗?如果是,请编辑您的方案并切换到Debug,或将swift或LLVM优化的Build Settings编辑为None(0)。
为了防止有人在调试内部使用C库的pod时遇到此问题,除了线程中列出的所有其他内容之外,还需要在项目设置中进行更改以使其工作。
转到Pods项目设置 - >你的C-using目标 - > Build Settings - > Apple Clang - Custom Compiler Flags - > Other C Flags并删除以某种方式到达那里的-O3
标志。
看起来您的项目处于发布模式。发布模式通过大量优化来编译应用程序,但调试器讨厌优化,因此为了可靠地调试应用程序,您需要将其切换到调试模式,这会减少优化并添加一堆调试信息。要将其切换到调试模式:
这是我的解决方案......
根据gimino的回答,如果您使用cocoapods,请在Podfile中添加如下行:
xcodeproj 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
或者对于cocoapods版本> = 1.0(感谢Diejmon)
project 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
我的项目除了标准的'Debug'之外还有'Debug - local','Debug - staging','Debug - PRODUCTION'作为调试配置
默认情况下,cocoapods通常会生成pod配置作为Release,这个Podfile行允许你告诉它它们是调试的。
这已经很久了,但我终于解决了这个问题。有一个第三个优化标志LTO
或Link Time Optimization
和令人惊讶的没有人在这里提到它,由于某种原因我也没有注意它。它就在Optimization Level
设置之上,你可以在这里发布的许多屏幕截图中看到。
总而言之,您需要关闭3个不同的优化标志进行调试:
-flto
)-O
)您确定您的调试配置不会优化代码(它不应该)吗?看起来您不小心为调试配置启用了优化,您应该将其从目标设置中关闭。