为啥 Xcode 不能附加到某些程序?

Posted

技术标签:

【中文标题】为啥 Xcode 不能附加到某些程序?【英文标题】:Why Xcode can not attach to some programs?为什么 Xcode 不能附加到某些程序? 【发布时间】:2021-12-23 03:31:15 【问题描述】:

我不得不重新安装我的 MacBook Pro。我已经安装了最新的 macOS 和 Xcode 版本,所以

macOS 蒙特雷 12.0.1 (21A559) 和 版本 13.1 (13A1030d)

我正在编写音频插件,以便测试我的插件。在我的情况下,我通常运行 DAW(数字音频工作站),我大部分时间都在使用 Ableton 或 Bitwig。

所以如果我开始调试过程,我会收到以下错误: 无法附加到 pid XXXXXX 附加失败(不允许附加到进程。当附加失败时,查看调试服务器条目附近的控制台消息(Console.app)。拒绝附加权限的子系统可能会记录一条信息性消息,说明为什么它被拒绝.)

如果我留意到 console.app,请查看以下几行:

[LaunchAttach] (3277) 即将到 task_for_pid(2930)

错误:[LaunchAttach] MachTask::TaskPortForProcessID task_for_pid(2930) 失败: ::task_for_pid (target_tport = 0x0203, pid = 2930, &task ) => err = 0x00000005 ((os/kern) 失败)

macOSTaskPolicy: (com.apple.debugserver) 可能无法获得任务控制 (BitwigStudio) 端口 (pid: 2930): (BitwigStudio) 已加固, (BitwigStudio) 没有 get-task-allow,(com.apple.debugserver) 是 声明的调试器(com.apple.debugserver)不是声明的只读 调试器

1 +0.000000 秒 [0ccd/0103]: 错误: ::task_for_pid (target_tport = 0x0203, pid = 2930, &task) => err = 0x00000005 ((os/kern) 失败) 错误 = ::task_for_pid (target_tport = 0x0203, pid = 2930, &task) => err = 0x00000005 ((os/kern) 失败) (0x00000005)

我做了一些研究,发现: *** link about What does get-task-allow do

get-task-allow,当登录到应用程序时,允许其他 附加到您的应用程序的进程(如调试器)。分配 配置文件要求关闭此值,而开发 配置文件需要打开这个值(否则 Xcode 会 永远无法启动并附加到您的应用程序)。

因此,我无法使用该软件调试我的程序。那是对的吗? :(

【问题讨论】:

【参考方案1】:

您可以调试,但必须将“代码签名注入基本权利”设置为“”才能进行调试

然后您必须添加配置文件。转到developer.apple.com,然后选择“证书、ID 和配置文件”为您正在测试的捆绑 ID 创建一个配置文件。

【讨论】:

以上是关于为啥 Xcode 不能附加到某些程序?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Xcode 不能识别这些着色器?

Xcode lldb 无法附加到 MacOS 系统程序 /bin/cp -“不允许附加到进程。”

为啥在尝试将 UIPopover 附加到不同类中的 UIButton 时出现此构建错误?

Xcode 4.2。运行时卡住“附加到我的应用程序”

无法附加到进程 ID Xcode

Xcode Instruments 附加到进程