Sunday, March 22, 2009

Digging around in iPhone IPA

After syncing your iPhone / iPod Touch with iTunes, take a look in the ~/Music/iTunes/MobileApplications folder. Here are all the applications you have purchased and downloaded. Perhaps not so obvious is that an IPA is a ZIP file in disguise. Make a copy of the IPA and throw it onto your desktop. Rename it so that it has a .zip extension. Double click it to uncompress the ZIP. Now you'll have a folder with some content. The iTunesArtwork is a 512x512 JPG. It's the icon that the iTunes store and iTunes Application browser use. Rename it with a .jpg extension and double click it to open it and check it out in all its glory.

The Payload folder contains the actual program and more interestingly its resources. To look at it you'll have to right click and ask to Show Package Contents. You should copy all the contents and put them into a new folder on your desktop so that you can easily sort and work with them.

At this point you'll be able to see all the goodies inside the IPA. In this case I'm looking at Pocket God v10. What can I see? Well, it has about 2MB in graphics. The graphics are contained within two very large atlas files. Most developers do not go to the effort of creating atlas files, not even KP funded ngmoco.

There are 26MB of audio in 75 files. Five of those files contain 22.2MB in music. This is an interesting discovery since playing the game I don't think all of the music is used. They aren't compressing the audio either these are just plain little-endian CAF files. These two things give us part of the story about why the version 10 Pocket God is about 25MB compressed in the store. At that size, the download is over the 10MB mobile download limit and is probably loosing impulse buyers to the CBS NCAA application. (And March Madness?)

The PNG images you see in any IPA are not in the usual format. There are in a proprietary format that is optimized for the graphics hardware on the device. A conversion tool such as iPhonePNG will have to be used to convert them into something you can use with a normal PNG viewer. As of this writing the PNG conversion tools are not compatible with the large PNG files found in applications like Pocket God.

Finally, the last interesting tidbit looking into this IPA is the use of XML to script the animations and sounds. This is the first application I've seen taking this approach. It emphasizes BoltCreative's background in scripted languages and suggests the potential for the BoltCreative game engine to quickly and easily support products beyond Pocket God.

Labels:

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home