Xcode 9.2模拟器调试中断;无法附加到流程ID

时间:2017-12-22 14:00:24

标签: ios xcode ios-simulator xcode9.2

iOS模拟器上的Xcode 9.2调试对我来说已经彻底破解了。

我在这方面工作了几个小时,尝试了大量的建议,但没有彻底擦拭我的硬盘并开始安装新的操作系统。我最终向Apple提交了一个错误。如果有人遇到此问题并有任何建议,请在此处发布。

要点:
尝试使用调试可执行文件在调试模式下构建和运行时。模拟器只将应用程序打开到白色屏幕,然后Xcode弹出错误:

Could not attach to pid: "<a process id>"
Ensure "<app>" is not already running, and "<user>" has permission to debug it.

重现步骤:
制作任何项目并尝试在任何模拟器上运行。

预期结果:
调试器成功附加到调试器。

实际结果:
调试器永远无法连接到iOS模拟器进程/应用程序进行调试。 调试器可以在物理设备上成功连接和构建并运行。

版本/体形:
- Xcode版本9.2(9C40b)
- macOS Sierra 10.12.6
- 任何iOS项目
- 任何iOS模拟器

其他说明:
- Xcode 9.2工作正常,直到这个问题随机开始。错误最初说:

 Failed to initiate service connection to simulator
 DTServiceHubClient failed to bless service hub for 
 simulator iPhone 8 Plus <simulator identifier>

- 重新启动计算机后,错误转移到“无法附加到pid ...”

我尝试了几十种建议的解决方案,但没有完全擦除我的电脑,包括:

  • 在模拟器上重置设备内容和设置
  • 创建新设备(甚至是不同的设备和操作系统组合)
  • 尝试不同的Xcode项目,甚至是简单的一次性单一视图应用程序
  • 查看etc / hosts文件并验证localhost是否可以ping通
  • 多次重启计算机
  • 删除派生数据(多次)
  • 让它在不附加调试器的情况下构建和运行,然后尝试通过“附加到进程ID”附加调试器
  • 完全卸载Xcode和所有模拟器,然后重新安装。
  • 删除钥匙串中的任何无效证书

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

事实证明我们的安全软件阻止了调试器。运行sudo sysdiagnose帮助我找到一个日志条目,显示它被阻止。该软件是 Cb Defense (Carbon Black Defense)。显然,唯一的解决方法是让您的安全团队通过哈希进行白名单,并且该哈希值可能在将来发生变化。

答案 1 :(得分:2)

Xcode 9.0-9.2中存在一个错误,导致此问题在运行一段时间后出现。如果您退出并重新登录,则应为您解决。