停止“开发人员工具访问需要控制另一个进程才能继续调试”警报

Posted

技术标签:

【中文标题】停止“开发人员工具访问需要控制另一个进程才能继续调试”警报【英文标题】:Stop "developer tools access needs to take control of another process for debugging to continue" alert 【发布时间】:2012-02-26 07:37:00 【问题描述】:

我最近升级到 10.7.3,登录后第一次尝试在模拟器中调试我的 ios 项目时,系统提示我以下两个警报:

我的用户是管理员用户。我以前从未见过这些警报。如何让他们停下来?​​

编辑

我已使用id -a 验证我是_developer 组的成员。

【问题讨论】:

我相信您需要像这样将自己添加到_developer 组:***.com/questions/1837889/… 但如果您已经是_developer 组的一部分(就像我一样),那么我不是确定发生了什么变化。我知道 /etc/authorization 文件在 10.7.3 中已更改,并且一些测试表明我可以通过将其编辑为始终为 allow 调试来消除一些提示,但使用默认规则似乎使 _developer 组失败测试。 :( 我注意到我发现了什么,所以其他人可能会挖掘更多细节并更了解发生了什么。 很遗憾这已关闭。 不知道为什么这太本地化了;这是在此处找到的问题(带答案)的副本:***.com/a/11416025/2063546 这是第一个被问到的。另一个是副本。 【参考方案1】:

文件 /etc/authorization 上的某些内容已被修改,我有一个没有 v10.7.3 的 Lion,它具有以下代码

第 5807-5814 行

    <key>k-of-n</key>
    <integer>1</integer>
    <key>rule</key>
    <array>
        <string>is-admin</string>
        <string>is-developer</string>
        <string>authenticate-developer</string>
    </array>

更新后,由于支持新语言,文件包含许多修改,但调试授权对应的行与上面显示的行不同

第 7675-7676 行

    <key>group</key>
    <string>_developer</string>

我无法将这些差异应用于我的 10.7.3 Lion 安装,因为它是生产机器,我不能冒险损坏它

如命令id -a所示,我已获得所有必要的权限

uid=501(dave) gid=20(staff) groups=20(staff),
401(com.apple.access_screensharing),
402(com.apple.sharepoint.group.1),
12(everyone),
33(_appstore),
61(localaccounts),
79(_appserverusr),
80(admin),
81(_appserveradm),
98(_lpadmin),
100(_lpoperator),
204(_developer)

【讨论】:

【参考方案2】:

升级到 10.7.3 后重新安装 Xcode 4.2.1 似乎已经为我解决了这个问题。

【讨论】:

Mac OS 10.8 或 iOS 5.1 启动时,我们将不得不再次这样做。话说他们正在使 Xcode 应用程序成为一个真正的 .app,以便通过 App Store 进行更新。 Xcode 4.3 已经以这种方式交付。自安装以来,我没有遇到过这个密码问题。【参考方案3】:

根据 Zev Eisenberg 的回答,重新安装 Xcode 4.2.1 有效。但是,使用以下差异修补 /etc/authorization 文件可能更容易。

        <key>system.privilege.taskport.debug</key> 
        <dict>
            <key>allow-root</key>
            <false/>
            <key>class</key>
-           <string>user</string>
+           <string>rule</string>
            <key>comment</key>
            <string>For use by Apple.  WARNING: administrators are advised
             not to modify this right.</string>
            <key>default-button</key>
            <dict>
            ...
            </dict>
            <key>default-prompt</key>
            <dict>
            ...
            </dict>
-           <key>group</key>
-           <string>_developer</string>
            <key>shared</key>
            <true/>
-           <key>timeout</key>
-           <integer>36000</integer>
+           <key>k-of-n</key>
+           <integer>1</integer>
+           <key>rule</key>
+           <array>
+               <string>is-admin</string>
+               <string>is-developer</string>
+               <string>authenticate-developer</string>
+           </array>
        </dict>

【讨论】:

我做了和上面一样的事情。现在的问题是我无法上网。我不确定这是怎么发生的。 我已经尝试过 DevSecurityTools,将自己添加到 _developer 组并进行了这些修改。系统仍然提示我提供访问权限。到目前为止,我还没有找到任何可以删除提示的内容。 通过执行 security authorizationdb write system.privilege.taskport allow 更改 system.privilege.taskport 使我的密码提示消失【参考方案4】:

对此有一个更简单的解决方案。尝试运行以下命令:

sudo /usr/sbin/DevToolsSecurity --enable

【讨论】:

谢谢!这很棒。 DevToolsSecurity 的手册页准确地解释了发生了什么。 为我工作,但苹果为什么要添加这个障碍?您从 XCode 的工作版本升级,并立即发现自己不得不谷歌他们奇怪的错误消息,试图找出如何继续使用 XCode。糟糕的服务。 像魅力一样为我工作。非常感谢! 对我也不起作用:Developer mode is already enabled. 这适用于我在 iMac 上的 Xcode 8,在 Mac OS Sierra 上运行 TeamCity 代理。【参考方案5】:

我修改了system.privilege.taskport 的规则,但警报不再显示。

    打开文件/etc/authorization。 找到规则system.privilege.taskport。在&lt;key&gt;class&lt;/key&gt; 行下,将&lt;string&gt;rule&lt;/string&gt; 更改为&lt;string&gt;allow&lt;/string&gt;

【讨论】:

发布差异比较好。 我已经尝试了所有其他建议,这是唯一有效的。谢谢。 这可能有效,但也可能会在您的沙箱中打开一个安全漏洞。我有点警惕。 谢谢!但是 /etc/authorization 在小牛队上已被弃用。你知道我现在应该用什么吗? 就像我上面评论的那样,它也可以通过在命令行中执行security authorizationdb write system.privilege.taskport allow 来工作。【参考方案6】:

不需要代码。无需重新安装 xcode。执行以下步骤:

1.关闭xcode。

2.打开钥匙串访问。

3.双击你的钥匙串(从keychain.p12创建的钥匙图标)

4.进入访问控制面板(名称可能不对)

5.enable all app access this.

6.保存。

7.运行您的 xcode 项目。

8.效果很好。

【讨论】:

【参考方案7】:

启用开发者模式: 在终端运行这个: DevToolsSecurity -启用

【讨论】:

只要运行 'DevToolsSecurity' 命令默认启用它。不需要传递 -enable 参数 不适用于带有 GDB 调试器的 Eclipse CDT。 Developer mode is already enabled.【参考方案8】:

我的 mac 10.12.5 和 Xcode9 也有同样的问题 运行这个命令:

sudo security authorizationdb write system.privilege.taskport allow 

然后输入您的密码..检查它是否仍然提示您。 祝你好运..

【讨论】:

这有助于 Eclipse CDT。谢谢。【参考方案9】:

我刚刚在(编辑方案)中关闭了调试 -> 取消选中调试可执行文件。 但我也在另一个控制台上进行所有调试,所以如果你正在开发并需要调试器,那么它不会有帮助。我只在旧版本的 Xcode 8.2.1 上遇到这个问题,因为我使用 El Capitan 在旧 Mac 上运行代码。

较新的 mac 和 Xcode 版本 10 似乎没有这个问题。

【讨论】:

以上是关于停止“开发人员工具访问需要控制另一个进程才能继续调试”警报的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE如何停止一个JOB

Sign Off中文?(除了停止活动)

停止调试时停止站点

WebClient服务不能停止

SoundPool 停止功能未停止

SpringBoot项目启动没报错,直接停止运行