Darc Darc - 5 months ago 14
iOS Question

Is there a way to remove the authorization prompt from command-line instances of Instruments (XCode)?

I am currently using Instruments via a bash script to initiate the command-line interface to start up runs of the Automation plug-in.

With 4.2, this worked well enough, however with the upgrade to Xcode 4.3, I am now being prompted for an authorized user to 'analyze other processes'. No user is ever actually authenticated, even if the correct credentials are granted. I get the following error:

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


Even with the authentication failure, the Automation plug-in executes, however this requires my script to have a physical babysitter enter credentials, which in many ways defeats the purpose of these command-line runs. Is it possible to add the user details as arguments? Or is there some other way to skip over this prompt without requiring a person at the keys?

-- EDIT --

This authorization dialog appears when you try to run UIAutomation tests from the GUI for the first time.

enter image description here

Filed a radar rdar://10945962.

-- EDIT --

Once the authorization dialog has been answered in the GUI, the prompts stop appearing on the command-line. This kind of work-around doesn't seem valid as an 'answer' though.

Answer

Here's a wonderful command that may work for you:

security unlock-keychain -p [password] "${HOME}/Library/Keychains/login.keychain"

It's the command-line way to gain access to a keychain on the Mac. I haven't tested it with Automation, but it's how I've integrated my iOS builds with Jenkins.

(Replace [password] with the password)

Comments