Instruments automation trace only allows one target connection?

IosInstrumentsIos Ui-Automation

Ios Problem Overview


I've created a simple javascript for my iOS app that I'd like to run simultaneously on multiple iOSDevices connected via USB to one host Mac machine. Launching instruments connected to an iPhone from the command line works fine but if I attempt to launch a second instruments connected to an iPad, the first instruments session hangs.


Upon terminating the first instruments session, I get one of more of the following lines printed:

> Stopped: Script stopped due to device being disconnected

After extensive research on the subject, with no results on the phrase, I've been trying to read into what is meant by Apple's Instruments Guide:

> When you choose All Processes, Attach to Process, or Choose Target from the Target menu, Instruments sets the default target for all instruments to the program you choose. There are occasions, however, when you might want to set a different target for each instrument. You might want to sample two different programs at the same time, for example, using the Sampler instrument. If you have some instruments that are capable of tracing all processes, you might want them to do just that while single-process instruments sample just one process.

I'm wondering if the Automation.tracetemplate is a single-process only instrument and that if another process is started with the same Automation trace then the first is usurped.

Any advice would be grateful as this is a major block for running our time intensive automation tests over multiple iOSDevices.


Update 27 Mar 2012

The following is from an email received after submitting a bug to Apple on the matter (developer.apple.com/bugreporter):

>I heard back from a UI Automation engineer. UI Automation is a single process Instrument. As such, you cannot use it simultaneously on multiple devices.

Ios Solutions


Solution 1 - Ios

You could try installing OS X in a virtual machine, and having two instances of the virtual machine running simultaneously. I know that might not be what you are looking for, but it should work.

Solution 2 - Ios

Try to connect all your devices to a Mac OS X server then try if that fails get the device to pass it to the other one and then pass to the mac

Solution 3 - Ios

You cannot run UI Automation simultaneously on multiple devices. Interestingly, even Xcode 5 bots seem to have this same limitation. :-/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionksigView Question on Stackoverflow
Solution 1 - Iosuser2676944View Answer on Stackoverflow
Solution 2 - IosCharles BartoloView Answer on Stackoverflow
Solution 3 - IosDavid WeissView Answer on Stackoverflow