尝试进入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(无框架)

更新 我忘了提到,优化器在发布和调试配置中都被设置为none,实际上我正在使用调试配置。

更新2

条带调试符号也关闭。


当前回答

此警告仅在遇到断点但源位于已启用优化的项目中时出现。这阻止了你观察真正的变量值(每个对象都显示为nil,即使它不是)

你在使用CocoaPods吗?

在我的例子中,它只在通过cocoapod依赖项一步一步地调试时发生。

因此,即使你已经正确设置了主目标和项目设置(条带调试符号=OFF,优化级别为None),你需要确保它与你击中断点的Pod项目相同。

其他回答

这个错误发生在我身上两次,每次都是用于请求服务的URL参数错误。 在一种情况下,URL在端口部分有一些空间,在另一种情况下,一些可选值没有被打开。

因此,解决方案是确保请求的url格式良好。更多关于我的案件的信息,类似的报道也在这里。

就我而言,这是因为我们引入了Swift包来组织代码。如果我尝试在Swift包中调试代码,我会看到这条消息。解决方案是重命名配置方案,使用单词Development而不是Dev,这样Xcode就可以相应地映射DEBUG配置。https://www.sobyte.net/post/2022-10/spm-in-xcode/

您确定您的调试配置没有优化代码(它不应该)吗?看起来您不小心启用了调试配置的优化,您应该将其从目标设置中关闭。

看起来你的项目处于发布模式。发布模式会编译带有大量优化的应用程序,但调试器讨厌优化,所以为了可靠地调试应用程序,你需要将其切换到调试模式,这会减少优化并添加一堆调试信息。切换到Debug模式。

点击Xcode左上角的方案。

选择“编辑方案…”

点击“Build Configuration”下拉菜单。并将其更改为调试模式。

在我的例子中,我为一个自定义配置(“Mock”)创建了一个新的方案,它没有使用优化,但忽略了方案的测试和分析上下文,它仍然使用发布配置(我必须在最初复制发布方案)。

将这些更改为使用我的自定义配置删除了运行时优化。