Xcode 14 未在调试模式下附加到模拟器

问题描述 投票:0回答:5

在调试任何 iOS 应用程序时,Xcode 会成功构建并运行,还会启动模拟器,但无法将调试器从 Xcode 14 连接到模拟器 iOS 应用程序。

它在 Xcode 中抛出错误:

Xcode 控制台显示:

无法附加到 pid:“75997”域:IDEDebugSessionErrorDomain 代码:3 失败原因:附加失败(不允许附加到 过程。查看控制台消息 (Console.app),靠近 当附加失败时,调试服务器条目。该子系统 拒绝附加权限可能会记录一个信息 有关为何被拒绝的消息。)用户信息:{ DVTRadarComponentKey = 855031; IDERunOperationFailingWorker = DBGLLDBLauncher; RawUnderlyingErrorMessage =“附加失败(不允许附加到进程。查看控制台消息(Console.app),靠近 当附加失败时,调试服务器条目。该子系统 拒绝附加权限可能会记录一个信息 关于为何被拒绝的消息。)"; }

尝试重新安装 Xcode 和命令行工具,但问题仍然存在。

步骤:

  • 使用调试可执行文件构建并运行应用程序
  • 模拟器启动
  • Xcode 出错,与模拟器断开连接

是否有可能被任何其他应用程序阻止,如果是的话如何识别?

ios xcode macos xcode14 xcode-debugger
5个回答
8
投票

如果有人遇到同样的问题但没有答案,我来这里分享我的(奇怪的)解决方案。就我而言,这个问题或其他类似问题的答案都没有解决方案(清理、重建项目、更新、清除派生数据..)

我的设置是:

Macbook M1 2022 + Xcode 版本 14.2 (14C18)

此 Xcode 版本无法在 iOS 版本 13.7 - 16.2 的不同模拟器(11、12、14)上附加到我的任何应用程序(全新的或以前开发的)。

从上面的答案中编辑方案解决方案也不起作用,所以我最终将方案保留为:

构建配置:发布
调试可执行文件取消选择(!)
自动启动

并且在 Xcode 中神奇地调试应用程序开始工作,即使它是取消选择调试选项的发布版本。再次选择“调试可执行文件”会使 Xcode 无法附加到应用程序进程


只是澄清一下:上述步骤实际上使应用程序在调试模式下运行 - Xcode 附加到 pid,我可以执行控制台日志和断点。此 Xcode 版本的行为与所选选项相反


2
投票

我通过执行以下步骤解决了该问题:

解决方案1:

  1. 编辑方案
  2. 选择运行
  3. 选择构建配置“调试”
  4. 选择“等待可执行文件启动”
  5. 关闭
  6. 运行应用程序

see the screenshot here

再次运行该应用程序时,您将收到一条错误消息。 关闭应用程序。 再次编辑方案并将“等待可执行文件启动”更改为“自动”。

现在您的模拟器将按预期工作。

解决方案2:

删除派生数据中的应用程序文件夹 /Users/[您的用户名]/Library/Developer/Xcode/DerivedData/ 搜索您的应用程序名称文件夹并将其删除。

解决方案3:

打开终端并运行:

sudo DevToolsSecurity -enable

此命令启用开发者模式。运行命令后,您将收到此消息:[开发人员模式现已启用]。


1
投票

有时,当您在构建开始后试图构建得太快时,就会发生这种情况。

首先,退出当前的模拟器,删除导出的数据并清理项目,等待整个处理完成。然后根据需要进行一些更改/编辑(当我们清理所有数据时)并尝试在不同的模拟器上运行。

检查钥匙串访问中的证书,如果发现钥匙串访问中存在不受信任的证书,请将其删除。

如果您使用的是测试版,请确保它是从Apple官方网站下载的。


0
投票

机器中安装了安全软件,阻止了该模拟器的连接。

要获取更多信息,当我们收到该警报时,我们应该在 Console.app 中检查我们的模拟器应用程序进程 ID 并注意问题/错误。

卸载该应用程序后,此问题已解决,并且可以通过调试模式附加应用程序。


0
投票

根据我使用 Xcode 15.3 和 My Mac(专为 iPad 设计)的经验,我发现有必要在“应用程序”文件夹中找到我的应用程序并手动将其删除。这使我能够启动和调试应用程序,而无需禁用“调试可执行文件”选项。

以前,在关闭“调试可执行文件”的情况下运行应用程序不会应用任何代码更改。

© www.soinside.com 2019 - 2024. All rights reserved.