在调试任何 iOS 应用程序时,Xcode 会成功构建并运行,还会启动模拟器,但无法将调试器从 Xcode 14 连接到模拟器 iOS 应用程序。
它在 Xcode 中抛出错误:
Xcode 控制台显示:
无法附加到 pid:“75997”域:IDEDebugSessionErrorDomain 代码:3 失败原因:附加失败(不允许附加到 过程。查看控制台消息 (Console.app),靠近 当附加失败时,调试服务器条目。该子系统 拒绝附加权限可能会记录一个信息 有关为何被拒绝的消息。)用户信息:{ DVTRadarComponentKey = 855031; IDERunOperationFailingWorker = DBGLLDBLauncher; RawUnderlyingErrorMessage =“附加失败(不允许附加到进程。查看控制台消息(Console.app),靠近 当附加失败时,调试服务器条目。该子系统 拒绝附加权限可能会记录一个信息 关于为何被拒绝的消息。)"; }
尝试重新安装 Xcode 和命令行工具,但问题仍然存在。
步骤:
是否有可能被任何其他应用程序阻止,如果是的话如何识别?
如果有人遇到同样的问题但没有答案,我来这里分享我的(奇怪的)解决方案。就我而言,这个问题或其他类似问题的答案都没有解决方案(清理、重建项目、更新、清除派生数据..)
我的设置是:
此 Xcode 版本无法在 iOS 版本 13.7 - 16.2 的不同模拟器(11、12、14)上附加到我的任何应用程序(全新的或以前开发的)。
从上面的答案中编辑方案解决方案也不起作用,所以我最终将方案保留为:
并且在 Xcode 中神奇地调试应用程序开始工作,即使它是取消选择调试选项的发布版本。再次选择“调试可执行文件”会使 Xcode 无法附加到应用程序进程
只是澄清一下:上述步骤实际上使应用程序在调试模式下运行 - Xcode 附加到 pid,我可以执行控制台日志和断点。此 Xcode 版本的行为与所选选项相反
我通过执行以下步骤解决了该问题:
解决方案1:
再次运行该应用程序时,您将收到一条错误消息。 关闭应用程序。 再次编辑方案并将“等待可执行文件启动”更改为“自动”。
现在您的模拟器将按预期工作。
解决方案2:
删除派生数据中的应用程序文件夹 /Users/[您的用户名]/Library/Developer/Xcode/DerivedData/ 搜索您的应用程序名称文件夹并将其删除。
解决方案3:
打开终端并运行:
sudo DevToolsSecurity -enable
此命令启用开发者模式。运行命令后,您将收到此消息:[开发人员模式现已启用]。
有时,当您在构建开始后试图构建得太快时,就会发生这种情况。
首先,退出当前的模拟器,删除导出的数据并清理项目,等待整个处理完成。然后根据需要进行一些更改/编辑(当我们清理所有数据时)并尝试在不同的模拟器上运行。
检查钥匙串访问中的证书,如果发现钥匙串访问中存在不受信任的证书,请将其删除。
如果您使用的是测试版,请确保它是从Apple官方网站下载的。
机器中安装了安全软件,阻止了该模拟器的连接。
要获取更多信息,当我们收到该警报时,我们应该在 Console.app 中检查我们的模拟器应用程序进程 ID 并注意问题/错误。
卸载该应用程序后,此问题已解决,并且可以通过调试模式附加应用程序。
根据我使用 Xcode 15.3 和 My Mac(专为 iPad 设计)的经验,我发现有必要在“应用程序”文件夹中找到我的应用程序并手动将其删除。这使我能够启动和调试应用程序,而无需禁用“调试可执行文件”选项。
以前,在关闭“调试可执行文件”的情况下运行应用程序不会应用任何代码更改。