Developing with Multiple iDevices

So I’m currently playing around with some multiplayer prototypes on the iphone, and when it came down to testing stuff I ran into a problem: You can’t deploy to multiple devices at the same time. Yea it’s not exactly a ‘problem’ per say, but it’s certainly tedious doing a ‘build and run’ on the devices you want to test. So much so that I dropped 3 player support in a prototype just to save time.

I did run across this blog post by Jonathon George on the topic. You can plug in all your devices at once and just switch the ‘active executable’ in the drop down to deploy to each device. Not ideal, but works for the time being. I figured there may be a way to run multiple instances of XCode projects but I expect that gets into all sorts of messy configuration issues so I haven’t spent the time trying to do it. Wonder if anyone out there developing multiplayer games has gotten a elegant solution to this?


  1. During iPadDevCamp in April, I was debugging my game controller app on my iPhone in one XCode project while debugging the game itself on my iPad in a different XCode project.

    I don’t remember any issues, but I’ll double check when I get home Sunday evening (out of town until then.)


  2. You could create three XCode projects that all share the same source code. Then, you could have all three projects open at once with each one targeting one of your test devices.

    One drawback of this is when running in multiple window mode, XCode sometimes gets confused as to which project is the “active” project when displaying the debug controls on the top of a window while viewing a shared source code file.


    1. @Doug @Brian Thanks for the tip! I’ve tried the ‘multiple projects, same source’ approach on an IDE in windows and it was never pretty. The IDE cached files in memory before dumping them to disk, so overwriting things was common. Good to know that’s not an issue here so I’ll definitely look into trying that again

Leave a Reply

Your email address will not be published. Required fields are marked *