最近我主要发布了iOS应用程序开发工具Xcode 9-beta的一个问题(经常)。
它在Simulator(iOS 11)中运行/调试应用程序时经常显示以下错误。
无法附加到pid:“2370” 确保<project title>尚未运行,<system username>有权调试它。
以下是同一问题的快照:
什么是这个问题的永久解决方案,因为它经常令人不安?
我在Xcode 10.2中看到了这一点,我的原因是lldb-rpc-server
崩溃了。我通过确保在调试选项中启用了Address Sanitizer或Thread Sanitizer来解决这个问题。我还提交了一份错误报告viewable on Open Radar。
这是密钥链访问中不受信任的证书的问题,请删除此类证书并重新构建。
我讨厌为此添加更多噪音
,但对我来说,答案是,无意义地,使用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
在我的情况下(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文件夹并再次运行。
(最有可能的解决方案)1。模拟器 - >硬件 - >删除所有内容和设置
(不太可能的解决方案)2。钥匙串 - >右上锁 - >再次解锁和锁定(或其他方式)
这在我的机器上发生,当我设置'新构建系统'转到菜单文件=>工作区设置并将构建系统设置为“标准”。
仍然不是一个永久的解决方案,但我不得不退出并重新启动Xcode,因为其他解决方案对我不起作用。
杀死我的模拟器,然后从Xcode再次运行它。
这对我有用:
编辑方案 - >信息 - >可执行 - >发布时询问
归功于@ nastya-gorban的回答here
更新
花了相当长的时间在Apple bug报告上的例子之后,他们基本上忽视了这个问题,因为使用手动证书不是“预期的”。
简而言之,如果您没有商业帐户,因此在同一帐户中有多个开发人员,那么使用自动签名就可以了,不应该看到问题。
如果你有一个拥有多个用户的商业帐户(我发现它打破了自动签名),这是他们的建议:
我们建议您为分发版本使用自动签名进行调试构建和手动签名。
我也有这个问题。在同一时间安装两个Xcode版本似乎存在问题。 (9.4.1和10.0 Beta)
它适用于测试版,但不适用于稳定版。一切都设置为Xcode 9.4.1稳定版的工具。我只能用beta运行我的单元测试。
删除测试版后,它与稳定版本一起使用。
我好几天都在处理这个问题。我已经能够构建但不能在模拟器上启动,我得到相同的“pid:..”错误消息。
我正在使用: - Xcode v9.2 - Swift 3.2 - 为iOS构建
我试过的那些不工作的东西是:
重启电脑;删除内容和设置(模拟器,我没有“重置”);卸载并重新安装Xcode;改变“部署目标”;在模拟器的硬件 - >管理设备中更改设备;删除派生数据,清理和构建,或者只是等待......永远。
正如@Rajasekhar所提到的那样:
之后它在Simulator中成功启动。我不知道问题是否会回来,但希望这有效。
删除派生数据并清理项目,等待处理完成,这可能需要一些时间。这个想法是给一些处理时间。之后工作正常
当您在构建开始后尝试构建太快时,这似乎是一个临时问题。尝试再次停止并运行项目。