Xcode 9:无法附加到pid

问题描述 投票:51回答:15

最近我主要发布了iOS应用程序开发工具Xcode 9-beta的一个问题(经常)。

它在Simulator(iOS 11)中运行/调试应用程序时经常显示以下错误。

无法附加到pid:“2370” 确保<project title>尚未运行,<system username>有权调试它。

以下是同一问题的快照:

error message - Could not attach to pid

什么是这个问题的永久解决方案,因为它经常令人不安?

ios xcode xcode9
15个回答
40
投票

如果问题出现在OS Mojave上并且您正在尝试,像我一样在较旧的Xcode版本(低于10.0)上运行测试,请确保在您的方案中,当您选择Test时,Debug可执行文件被禁用

enter image description here

从这一点开始,您将无法调试测试


4
投票

我在Xcode 10.2中看到了这一点,我的原因是lldb-rpc-server崩溃了。我通过确保在调试选项中启用了Address Sanitizer或Thread Sanitizer来解决这个问题。我还提交了一份错误报告viewable on Open Radar


3
投票

这是密钥链访问中不受信任的证书的问题,请删除此类证书并重新构建。


3
投票

我讨厌为此添加更多噪音 ,但对我来说,答案是,无意义地,使用sudo

正常运行,Xcode 9.4.1(9F2000)和Xcode 10.0 beta 4(10L213o)在多次尝试后都无法附加到我的应用程序,给出了原始帖子中引用的错误。

有效的是用sudo运行Xcode(9.4),

sudo /Applications/Xcode.app/Contents/MacOS/Xcode

我不明白为什么sudo是必要的。我附加的Cocoa应用程序是一个Debug构建,我刚刚在Xcode 9.4.1中构建并拖入/Applications。它没有经过编码。对.app,它的Contents,它的MacOS和可执行文件的Posix权限都是八进制755. Owner是我。如果我将它保留在Build文件夹中,以正常方式构建和调试,它工作正常。

lldb显然存在问题。我也试过从命令行使用lldb(lldb-902.0.79.7)。我得到了相同的结果。它只适用于sudo。没有sudo

error: attach failed: unable to attach

3
投票

在我的情况下(Xcode 10.1),这是控制台中的错误:

kernel  macOSTaskPolicy: (com.apple.debugserver) may not get the taskport of (bin) (pid: 10132): (bin) is hardened, (bin) doesn't have get-task-allow, (com.apple.debugserver) is a declared debugger

所以解决方案是禁用Hardened Runtime,清理build文件夹并再次运行。


2
投票

(最有可能的解决方案)1。模拟器 - >硬件 - >删除所有内容和设置

(不太可能的解决方案)2。钥匙串 - >右上锁 - >再次解锁和锁定(或其他方式)


2
投票

这在我的机器上发生,当我设置'新构建系统'转到菜单文件=>工作区设置并将构建系统设置为“标准”。


19
投票

仍然不是一个永久的解决方案,但我不得不退出并重新启动Xcode,因为其他解决方案对我不起作用。


10
投票

杀死我的模拟器,然后从Xcode再次运行它。


9
投票

这对我有用:

编辑方案 - >信息 - >可执行 - >发布时询问

归功于@ nastya-gorban的回答here

更新

花了相当长的时间在Apple bug报告上的例子之后,他们基本上忽视了这个问题,因为使用手动证书不是“预期的”。

简而言之,如果您没有商业帐户,因此在同一帐户中有多个开发人员,那么使用自动签名就可以了,不应该看到问题。

如果你有一个拥有多个用户的商业帐户(我发现它打破了自动签名),这是他们的建议:

我们建议您为分发版本使用自动签名进行调试构建和手动签名。


8
投票

我也有这个问题。在同一时间安装两个Xcode版本似乎存在问题。 (9.4.1和10.0 Beta)

它适用于测试版,但不适用于稳定版。一切都设置为Xcode 9.4.1稳定版的工具。我只能用beta运行我的单元测试。

删除测试版后,它与稳定版本一起使用。


7
投票

我好几天都在处理这个问题。我已经能够构建但不能在模拟器上启动,我得到相同的“pid:..”错误消息。

我正在使用: - Xcode v9.2 - Swift 3.2 - 为iOS构建

我试过的那些不工作的东西是:

重启电脑;删除内容和设置(模拟器,我没有“重置”);卸载并重新安装Xcode;改变“部署目标”;在模拟器的硬件 - >管理设备中更改设备;删除派生数据,清理和构建,或者只是等待......永远。

正如@Rajasekhar所提到的那样:

  • 检查了钥匙串证书。
  • 通过右键单击删除了现有的(它们已过期)
  • 并取消选中Targets-> General中的“自动管理签名”

之后它在Simulator中成功启动。我不知道问题是否会回来,但希望这有效。


6
投票

删除派生数据并清理项目,等待处理完成,这可能需要一些时间。这个想法是给一些处理时间。之后工作正常


5
投票

我也遇到了同样的问题,我试图用旧版本的xcode运行测试用例(在我的情况下为9.4)。

禁用Debug Executable工作。 enter image description here


4
投票

当您在构建开始后尝试构建太快时,这似乎是一个临时问题。尝试再次停止并运行项目。

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