on run argv
# Delay for 10 seconds as this script runs asynchronously to the automation process and is kicked off first.
delay 10
# Inspect all running processes
tell application "System Events"
set ProcessList to name of every process
# Determine if authentication is being requested
if "SecurityAgent" is in ProcessList then
# Bring this dialogue to the front
tell application "SecurityAgent" to activate
# Enter provided password
keystroke item 1 of argv
keystroke return
end if
end tell
end run
10 回答
您需要将OS X用户名添加到
_developer
组 . 有关详细信息,请参阅this thread中的帖子 . 以下命令应该可以解决问题:最后,我能够在终端上使用
DevToolsSecurity -enable
摆脱它 . 感谢@joar_at_work!FYI :我在Xcode 4.3上,并在第一次启动时按下 disable 按钮,不要问为什么,只是假设我的狗让我这样做:)
您应该将自己添加到Developer Tools组 . 在OS X中将用户添加到组的一般语法如下:
我相信DevTools组的名称是
_developer
.如果您的用户被允许
sudo
,Ned Deily的解决方案可以完美地运行 .如果他不是,你可以
su
到管理员帐户,然后使用他的dscl . append /Groups/_developer GroupMembership $user
,其中$ user是用户名 .但是,我错误地认为它没有,因为我在命令中错误地输入了用户的名字,它默默地失败了 .
因此,输入此命令后,您应该对其进行校对 . 这将检查$ user是否在$ group中,其中变量分别代表用户名和组名 .
此命令将打印消息
user is not a member of the group
或user is a member of the group
.Answer suggested by @Stacy Simpson:
我们正在努力解决这些线程中描述的问题,并且没有一个解决方案似乎有效:
Stop "developer tools access needs to take control of another process for debugging to continue" alert
Authorize a non-admin developer in Xcode / Mac OS
由于我是SO的新手,我不能在任何一个帖子中发帖 . (第一个实际上是关闭的,我不同意本地化推理...)
无论如何,我们使用AppleScript创建了一个可能感兴趣的解决方案 . 下面的脚本应该在启动自动化测试之前异步执行:
这是脚本:
可能不是很安全,但它是我们提出的最佳解决方案,允许测试运行而无需用户干预 .
希望我能得到足够的分数来发布答案;或者,有人可以取消保护这个问题 . 问候 .
这是一个更好的解决方案
Mac OS X wants to use system keychain when compiling the project
我在Snow Leopard上,这个对我不起作用 . 但是以下程序有效:
首先在帐户下勾选"Allow user to administer this computer"添加了另一个具有管理员权限的帐户,例如用户名为 test 的帐户
登录 test 帐户
推出Xcode,编译并运行我的iPhone项目 . 一切正常,没有与权限相关的错误
已退出 test 帐户
使用具有管理员权限的另一个帐户登录
通过删除帐户下"Allow user to administer this computer"的勾号,从 test 帐户中取走管理员权限
已重新登录 test 帐户
删除了iPhone项目目录并再次从存储库中检出(在我的情况下是svn)
推出Xcode,编译并运行该项目 . 我没有得到任何错误,应用程序在iPhone模拟器中运行良好 .
运行后:
根据上面的答案,您可能会 still 被提示输入您自己的密码:
我们需要管理员用户的授权才能运行调试器 . 每次登录会话只会发生一次 .
它的真正含义是任何_developer组成员用户,所以只有你的非管理员用户/密码才能在这里工作,但要完全摆脱它(重启后没有提示),你还需要运行:
(使用sudo作为管理员用户/以root身份运行它将使你可以远程执行它而无需gui密码提示)
对我来说,我发现以下主题中的建议有所帮助:
Stop "developer tools access needs to take control of another process for debugging to continue" alert
它建议在 Terminal 应用程序中运行以下命令: