【问题标题】:Xcode 9.2 Simulator Debugging Broken; Could not attach to process idXcode 9.2 模拟器调试坏了;无法附加到进程 ID
【发布时间】:2018-06-05 04:22:45
【问题描述】:

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

【问题讨论】:

    标签: ios xcode ios-simulator xcode9.2


    【解决方案1】:

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

    【讨论】:

    • 注销什么?我的开发者帐户还是计算机?我已经多次重新启动计算机,注销并重新登录开发者帐户,甚至卸载并重新安装 Xcode 并删除并重新创建模拟器。都没有用。
    • 好的,那么请提交错误报告并包含sysdiagnose -qxcrun simctl diagnose 的输出。如果可以,请用雷达#回复。
    【解决方案2】:

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

    【讨论】:

    • 感谢您的帖子和回答。在我们的 IT 部署 Carbon Black Defense 后,我在尝试调试 macOS 应用程序时遇到了这个问题。我能够更改项目,使其不会尝试在调试模式下启动并在之后手动附加到进程。这不允许您调试“引导”代码,但总比没有好。
    • 我不敢相信,但你完全正确。我让 CB Defense 阻止调试器附加。谢谢!
    • 我在哪里可以找到`log entry`显示这是因为Cb Defense?
    • 这确实是问题所在。只需运行上述命令并在生成的日志中搜索文件 system.log。日志将显示“/private/var/db/com.apple.xpc.roleaccountd.staging/com.apple.dt.instruments.dtarbiter.xpc.16777220.1773513.xpc/Contents/MacOS/com.apple.dt.instruments。 dtarbiter”试图通过调用函数“task_for_pid”来读取“/Applications/Xcode.app/Contents/SharedFrameworks/DVTInstrumentsFoundation.framework/Versions/A/Resources/DTServiceHub”的内存(可能会抓取内存)。该操作已被 CbDefense 阻止”。如果您看到此内容,请联系 IT 团队。
    猜你喜欢
    • 2012-07-17
    • 2016-08-20
    • 2016-01-06
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2020-04-17
    相关资源
    最近更新 更多