我有一个文件SignInViewController.swift
,在我的Xcode项目中,无处不在已经开始没有停在断点上。我在viewDidLoad()
中有一个断点,在viewDidAppear()
中有一些断点。我在两个函数中都有几个print()
调用,以确保它们正在执行。断点在其他文件中工作正常,包括AppDelegate.swift
。
有一点我试图找出错误的地方我注意到在构建项目的过程中会出现一个错误Invalid redeclaration of 'signInViewController.swift'
,然后在构建完成之前消失并且应用程序运行正常,除了文件中的断点。 signInViewController.swift
是几个月前我将其重命名为SignInViewController.swift
之前的文件的旧名称。在断点问题发生之前我还没有看到它,因为我已经清理了项目的构建文件夹和Xcode的派生数据,我无法复制。我有一种感觉,它正在考虑问题,但我不确定如何/为什么。
无论如何,这是我已经尝试过的事情。他们中的大多数只是针对一般不起作用的断点,但我想我应该列出它们,即使情况并非如此:
- 清洁项目
- 清理构建文件夹
- 清除Xcode的DerivedData
- 确保断点已启用(Cmd Y)
- 构建设置设置为Debug
- 始终显示已启用和已禁用的反汇编
- 在运行配置中启用调试
醇>
非常感谢任何帮助。
更新1 (仍然没有运气):
- 尝试按照neprocker的回答here
的建议删除Xcode偏好设置 醇>
更新2 :
我已将断点问题隔离到viewDidLoad()
,并且文件中其他地方的viewDidAppear()
个断点正在运行。
更新3 :
与viewDidLoad()
中的特定代码块隔离。 viewDidAppear()
仍然没有工作。
答案 0 :(得分:25)
我对旧项目遇到了同样的问题。选择产品(位于顶部菜单栏) - >方案 - > EditScheme ,我通过单击" Debug Executable"解决了这个问题,如图所示。也许这对其他人也有帮助。
答案 1 :(得分:17)
在我的情况下断点没有在一次回调中被击中,所以我改变了#34; Swift Compiler" "优化等级"到"没有优化"在用于调试的项目目标构建设置中,它开始在Xcode 9.3和AppCode中工作。
答案 2 :(得分:7)
下面的补丁对我有用。从菜单栏中选择产品 - >方案 - >编辑方案 - >选择个人资料 - >将Build Configuration设置为BUILD 。请查看下面附带的屏幕截图。
答案 3 :(得分:6)
我不确定最终如何修复它,但我将问题隔离到了viewDidLoad()
中的特定代码块。然后我注释掉了代码并构建并运行了项目。然后我取消注释代码并构建并再次运行它并且断点有效。
答案 4 :(得分:6)
对我有帮助的是删除文件Breakpoints_v2.xcbkptlist,该文件位于目录中的项目目录(* .xcodeproj)下:xcuserdata / Fred.xcuserdatad / xcdebugger(用您的用户名替换“Fred”)。使用终端程序去那里。
答案 5 :(得分:6)
我通过转到我的Xcode项目的'Build Settings'并将'Generate Debug Symbols'设置为'Yes'来解决这个问题
答案 6 :(得分:4)
我还在xcode 9中处理同样的问题。
我通过以下方式解决了这个问题:
删除XCode默认值使用以下终端命令
defaults delete com.apple.dt.Xcode.LSSharedFileList
defaults delete com.apple.dt.Xcode
从
清除(或删除)Xcode的DerivedData/Users/[Your Mac Username]/Library/Developer/Xcode/DerivedData
从应用程序中删除(或卸载)Xcode.app,然后重新启动PC
安装Xcode 9的新副本
[必须]为您的应用项目设置用户权限,例如
chmod -R 777 "/Users/[Your Mac Username]/Desktop/TestApp/"
[其中TestApp是保留在桌面上的应用项目]
打开项目并选中Build Settings设置为Debug
答案 7 :(得分:3)
有时Xcode userdefaults本身的值可能已经改变, 有时,我遇到类似的问题,调试器在stacktrace停止 很少有办法清除这个
1.Delete the Xcode preference
defaults delete com.apple.dt.Xcode
其他问题可能是目标的优化级别,将其更改为none将停止在调试器
答案 8 :(得分:2)
答案 9 :(得分:2)
在标准编辑器中打开viewController.swift文件以进行初始视图,然后在viewDidLoad中打印一些内容并运行应用程序。如果打印正常,请确保您已在助手编辑器中正确选择了viewController.swift文件。
答案 10 :(得分:1)