有没有办法从Instruments(XCode)的命令行实例中删除授权提示?

Dar*_*arc 28 instruments ios xcode-instruments ios-ui-automation xcode4.3

我目前正在通过bash脚本使用Instruments来启动命令行界面以启动Automation插件的运行.

使用4.2,这很好用,但是随着Xcode 4.3的升级,我现在被提示让授权用户"分析其他进程".即使授予了正确的凭据,也不会对用户进行实际身份验证.我收到以下错误:

Failed to authorize rights (0x20) with status: -60007.
2012-02-27 19:30:37.232 instruments[54151:1c03] Failed to connect to local pid watcher     service: (os/kern) failure
Run Code Online (Sandbox Code Playgroud)

即使身份验证失败,自动化插件也会执行,但这需要我的脚本让物理保姆输入凭据,这在很多方面都会破坏这些命令行运行的目的.是否可以将用户详细信息添加为参数?或者是否有其他方法可以跳过此提示而无需按键人员?

- 编辑 -

当您尝试首次从GUI运行UIAutomation测试时,会出现此授权对话框.

在此输入图像描述

提起雷达rdar:// 10945962.

- 编辑 -

在GUI中应答授权对话框后,提示将停止显示在命令行上.然而,这种解决办法似乎不是一个"答案".

Ale*_*der 18

好吧,我想我已经开始工作了.

以下是有关如何删除xcode命令行授权提示的更多详细信息

我做的是以下内容:

  • 将jenkins用户标记为管理员(不幸的是,似乎没有其他方式atm)
  • 转到/ etc/authorization
  • 搜索关键system.privilige.taskport
  • 将allow-root的值更改为true

    <key>system.privilege.taskport</key>
    <dict>
        <key>allow-root</key>
        <false/> // change to -> <true>
        <key>class</key>
        <string>user</string>
        <key>comment</key>
        <string>Used by task_for_pid(...).
        ...
    </dict>
    
    Run Code Online (Sandbox Code Playgroud)

现在我可以使用jenkins通过命令行脚本运行我的UIAutomation-Tests

  • 我在OS X El Capitan中没有`/ etc/authorization`.这改变了吗? (2认同)

R. *_*ers 12

这是一个可能适合您的精彩命令:

security unlock-keychain -p [password] "${HOME}/Library/Keychains/login.keychain"
Run Code Online (Sandbox Code Playgroud)

这是获取访问Mac上的钥匙串的命令行方式.我还没有使用自动化测试它,但这是我将我的iOS构建与Jenkins集成的方式.

(用密码替换[密码])


Jea*_*nne 10

除了Alexander的答案之外,我发现对于Mavericks来说,由于处理授权的方式(来源),你应该这样做:

sudo security authorizationdb write system.privilege.taskport allow

我正在通过VMWare VM中的Jenkins作业运行zucchini功能测试,并且奴隶无法正确启动模拟器并且会挂起在启动屏幕上,可能是因为授权不正确.这有助于我解决这个问题,希望它能帮助别人.


que*_*ish 5

您的脚本运行的用户必须被授权使用开发人员工具.你可以这两种方式:

  • 将用户添加到_developer组: sudo dscl . append /Groups/_developer GroupMembership scriptusername

  • 使用DevToolsSecurity命令行工具

请记住,为了使UIAutomation仪器正常工作,您调用Instruments的用户还需要是一个可以启动窗口服务器的用户(即运行UI) - 并且必须登录到窗口服务器当UIAutomation运行时.

这两件事是与Jenkins一起使用UIAutomation的四个或五个秘密中的两个.

  • DevToolsSecurity --enable就是答案! (2认同)