Xcode 9:无法附加到pid

时间:2017-06-20 10:50:31

标签: ios xcode xcode9

我一直面临着(最近)iOS应用程序开发工具Xcode 9-beta主要版本的问题。

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

  

无法附加到pid:“2370”   
确保< 项目标题>尚未运行,并且< 系统用户名>有权调试它。

以下是同一问题的快照:

error message - Could not attach to pid

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

23 个答案:

答案 0 :(得分:38)

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

enter image description here

从那时起您将无法调试测试

答案 1 :(得分:19)

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

答案 2 :(得分:10)

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

答案 3 :(得分:9)

这对我有用:

编辑方案->信息->可执行文件->启动时询问

@ nastya-gorban的回答here

更新

在花费大量时间在Apple错误报告上的示例上之后,他们基本上没有考虑到该问题,因为使用人工证书不是“期望”。

长话短说,如果您没有企业帐户,因此同一帐户上有多个开发人员,则使用自动签名应该可以,并且没有看到问题。

如果您拥有一个拥有多个用户的企业帐户(我发现它会破坏自动签名),这是他们的建议:

  

我们建议您对调试版本使用自动签名,   手动签署发行版本。

答案 4 :(得分:8)

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

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

删除Beta后,它可以与稳定版本一起使用。

答案 5 :(得分:7)

即使在Xcode 11.1 / 2/3上

这是模拟器的授权问题, 当Simulator没有必要的访问权限时。这引起了问题。

尝试在终端机中

sudo DevToolsSecurity -enable

sudo /usr/sbin/DevToolsSecurity -enable

可以找到详细信息here

答案 6 :(得分:6)

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

答案 7 :(得分:6)

我几天来一直在处理这个问题。我已经能够构建但不能在模拟器上启动,我得到了相同的" pid:.."错误信息。

我正在使用: - Xcode v9.2 - 斯威夫特3.2 - 为iOS构建

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

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

@Rajasekhar提到的工作是什么:

  • 签出了钥匙串证书。
  • 通过右键点击(他们已过期)来删除现有的
  • 并取消选中"自动管理签名"在目标 - >一般

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

答案 8 :(得分:5)

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

禁用Debug Executable可行。 enter image description here

答案 9 :(得分:4)

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

答案 10 :(得分:4)

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

答案 11 :(得分: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应用程序是我刚刚在Xcode 9.4.1中构建并拖到/Applications中的Debug版本。没有代码签名。 .app,其Contents,其MacOS和可执行文件的Posix权限均为八进制755。所有者是我。如果我将其保留在Build文件夹中,以正常方式进行构建和调试,则效果很好。

问题显然与lldb有关。我还尝试从命令行使用lldb(lldb-902.0.79.7)。我得到了相同的结果。它仅适用于sudo。如果没有sudo

error: attach failed: unable to attach

答案 12 :(得分:3)

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

答案 13 :(得分: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

因此解决方案是禁用强化运行时,清理构建文件夹并再次运行。

答案 14 :(得分:3)

我尝试了以上所有答案。对我唯一起作用的是更改内部版本号。

答案 15 :(得分:2)

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

(不太可能的解决方案)2。钥匙串 - >右上锁 - >解锁并再次锁定(或反过来)

答案 16 :(得分:2)

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

答案 17 :(得分:2)

我有同样的问题。检查屏幕截图。

Screenshot added

以下是一些可行的解决方案:

  1. 重新运行项目
  2. 清理(快捷方式:cmd + shift + K)并重新运行项目
  3. 退出Xcode和模拟器。打开项目并再次运行
  4. 重置模拟器的内容(选择模拟器->转到“硬件”选项卡->清除所有内容和设置...)并重新运行项目。

Screenshot added

解决方案4对我有用。

答案 18 :(得分:1)

进行一些挖掘之后,这在Xcode 10.3上对我有用。

sudo /usr/sbin/DevToolsSecurity -enable

答案 19 :(得分:1)

在我的情况下,唯一可行的方法是在工作区设置中从“新构建系统”切换回“旧版构建系统”。闷闷不乐。

答案 20 :(得分:1)

从所有其他答案中,我意识到这不是一个解决方案的问题。所以,这是对我有用的东西:

1)重新启动计算机

2)第一次跑步总是对我有用。唯一可以帮助我避免在首次运行后出现此错误的方法是从XCode停止应用程序,而不仅仅是单击“运行”按钮来重新运行该应用程序。

另一件事,当我锁定计算机时,有时会再次出现此问题(可能是当我忘记停止应用程序时)。因此,我必须再次重新启动计算机。

答案 21 :(得分:1)

这是授权问题。在终端中尝试以下操作:

sudo DevToolsSecurity -enable

答案 22 :(得分:1)

首先,通过sim完全关闭应用(不休眠-完全关闭应用) 如果仍无法正常工作:重新引导整个PC,请确保重新引导时只有1个模拟器处于活动状态。

如果有错误,超过1个sim卡可能会造成混淆。