在Xcode/Mac OS中授权非管理员开发人员

And*_*ain 107 macos privileges xcode osx-snow-leopard dscl

我在Mac OS上使用标准用户帐户来完成日常任务.升级到Snow Leopard后,当从Xcode中运行程序时,我被要求执行以下操作:

"在"开发人员工具"组中键入用户的名称和密码,以允许开发人员工具访问权限进行更改"

虽然我知道管理员用户名/密码,但这很烦人(虽然每次登录只需要一次).

开发人员工具访问权要求应用程序gdb-i386-apple-darwin对"system.privilege.taskport.debug"的权限.

围绕这个最好的方法是什么?

Ned*_*ily 132

您需要将OS X用户名添加到_developer组中.有关更多信息,请参阅此主题中的帖子.以下命令应该可以解决问题:

sudo dscl . append /Groups/_developer GroupMembership <username>
Run Code Online (Sandbox Code Playgroud)

  • 在我向选项中添加`-u <account-of-account-with-root-access>`之前,此解决方案对我不起作用.所以我的完整命令是`dscl -u <root-account>.追加/ Groups/_developer GroupMembership <my-account>` (9认同)
  • 这个解决方案对我有用了大约 10 分钟,然后由于某种原因它开始再次询问我的用户名/密码。我尝试再次在终端中输入它,但它不再响应。 (2认同)
  • 如果将此行添加到持续集成脚本中,您应该考虑使用“merge”而不是“append”。如果它已经存在,合并将不会添加它。有关更多详细信息,请参阅“man dscl”。 (2认同)

chu*_*guy 23

最后,我能够DevToolsSecurity -enable在终端上使用它来摆脱它.感谢@joar_at_work!

仅供参考:我在Xcode 4.3上,并在第一次启动时按下禁用按钮,不要问为什么,只是假设我的狗让我这样做:)

  • +1提及DevToolsSecurity.我不知道这样的工具存在.我遇到了相反的问题,我想再次禁用它并且由于这个工具我终于能够:)只需用`-disable`替换`-enable`并且按预期工作! (2认同)

cde*_*osa 9

$ dseditgroup -o edit -u <adminusername> -t user -a <developerusername> _developer
Run Code Online (Sandbox Code Playgroud)

  • 在我的拙见中,这个答案真的可以从更多解释它的作用中受益.这并不是说我不喜欢在我的系统上输入sudo rm -rf /,但你明白我的观点.:d (4认同)

pho*_*bus 8

您应该将自己添加到Developer Tools组.在OS X中将用户添加到组的一般语法如下:

sudo dscl . append /Groups/<group> GroupMembership <username>
Run Code Online (Sandbox Code Playgroud)

我相信DevTools组的名字是_developer.