9

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 和所有模拟器,然后重新安装。
  • 删除钥匙串中的任何无效证书

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

7

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

于 2018-01-10T16:07:44.623 回答
2

There is a bug in Xcode 9.0-9.2 that causes this issue to appear after running for a while. If you log out and back in it should resolve it for you.

于 2017-12-23T04:12:20.453 回答