Setting up a workstation for artists/designers to test on a device

Our company is just getting started with iPhone development, and things are going great for the programmers. We've run into a problem with artists and designers though. What is the best way to get them set up so they can quickly see their work on an actual device?

Our media is all in a "Media" directory in the .app, is there a way they can simply change files in there and re-upload to a device easily?

What we've been doing is a bit crazy. If they change a bit of art they have to "touch" the executable then do a build and run in XCode, so it correctly signs/installs it on the device. Not ideal.

SufferinPup Wrote:Our media is all in a "Media" directory in the .app, is there a way they can simply change files in there and re-upload to a device easily?

Yes, I believe this just works. If you make a signed build that deploys successfully, you should be able to open the app bundle and mess with files in it, then reupload by dragging the app bundle into the Xcode organizer (or iTunes, if you're set up for ad hoc distribution). Code signing isn't affected by non-executable resource files in your bundle.

I'm 99% sure that the entire bundle is signed for an iPhone application, but can't find the document that says such right now. (If you check the build log, you'll see that code signing hits the entire bundle.)

Regardless, do not attempt to modify the application bundle or have anyone else modify the application bundle. I guarantee, even if it happens to work, that you will end up with the wrong artwork in your final build because someone forgot to actually send you an art file or you forgot to add it to the project.

ThemsAllTook Wrote:Yes, I believe this just works. If you make a signed build that deploys successfully, you should be able to open the app bundle and mess with files in it, then reupload by dragging the app bundle into the Xcode organizer (or iTunes, if you're set up for ad hoc distribution). Code signing isn't affected by non-executable resource files in your bundle.

Are you sure this is true? If I build an application, ensure it runs on the device, then modify something in the Media directory and try to re-upload via the Organizer it gives me the following error: "A signed resource has been added, modified, or deleted." This leads me to believe even artwork is signed, which is the crux of my problem.

I also attempted to use iTunes to sync the app to the device, but it gave a similar error.

Ideally there would be a simple command line tool or OSX application that would automatically sign and upload apps to a device for designers and artists to use, but I guess this doesn't exist?

Back when I started iPhone development I really wanted to do something like this as well. I do my own art but re-building is still a PITA compared to the workflow I was used to on the desktop...

My first thought was to load resources from the app's documents sandbox - but it turns out that adding stuff to that from the outside world is just another type of PITA. However, file sharing is now official with the 3.2 SDK so this might be doable - just maybe not on iPhones/iPods just yet.

The only solution I could think of at the time was using a special developer build that would load resources from a network share. That way I could update stuff on my Mac and just force a reload on the device. I couldn't be arsed to actually implement this though

SufferinPup Wrote:Are you sure this is true? If I build an application, ensure it runs on the device, then modify something in the Media directory and try to re-upload via the Organizer it gives me the following error: "A signed resource has been added, modified, or deleted." This leads me to believe even artwork is signed, which is the crux of my problem.

Huh, interesting. I knew I should have verified that before posting it...

Is using the simulator an option? You don't need to sign simulator apps, and could simply replace the assets and restart the app to change them. If not, your current solution is probably your best shot.

[edit]If you look in /Developer/Platforms/MacOSX.platform, you'll find a file called ResourceRules.plist, which is used during code signing. You may be able to change the signing rules for the particular resources you want to be replaceable. I have no idea if they would actually allow you to deploy an app with unsigned resources, but it might be worth a shot if you want to experiment.

Thanks for the replies all, I had no idea this was such an issue. I figured I was just missing something obvious. Simulator isn't really an option, we do use it, but we also have a PC build of our game that the artists use for day-to-day work that is even easier to deal with. I'll have to look into that ResourceRules file a bit more, I don't quite understand whats going on there but its a good lead.

I don't mind artists having to go to a techie person to see their stuff on the device for smaller games, but I do worry about bottlenecks or broken builds in the 10+ artist scenarios.