Deploying AirPlay SDK app to iPhone, iPod and iPad

I recently started playing around with AirPlay SDK from Ideaworks Labs. The AirPlay SDK is basically a set of tools and unified API’s that allow phone developers to develop games and applications across a wide range of phones / devices including iPhone, iPad, iPod, Android, Symbian, Windows Mobile, BREW, Bada, Palm and Maemo using the same code base and development tools. Development can be done on Mac or PC, although I much prefer PC / Visual Studio to Mac / Xcode as its what I’m used to.
 
I’m only going to cover deploying from PC as that’s the way I am deploying, I’m also assuming that you came from Mac and already have a developer account and valid developer certificate
 
Ok, so I downloaded the SDK and got my free iPhone license (yes the guys at Ideaworks have lost their minds and the AirPLay SDK iPhone license is indeed free!) , read a bit about the AirPlay SDK and was very pleased. The first thing I do with a new platform / APi is get something on screen. This proved a little more complicated than I had expected, hence my blog post.
 
Before you begin deploying something to iPhone, iPod or iPad you will need the following bits and bobs:
 
* PC obviously (I’m not covering Mac)
* The AirPlay SDK with a free iPhone license (located here)
* iTunes (located here)
* A valid iOS developer account with Apple (Get one from here – This will cost you $99)
* A developer provisioned iOS device (iPhone, iPod, iPad) 
* An APP ID (something like BLAHJOPJPOHJD.com.developername.GameName). You can create one of these when you have a developer account
 
Ok, firstly add a deployment section to your projects MKB file that looks something like:
deployments
{
    name=’s3eBasic’
 
    [“iPhoneConfig”]
    iphone-appid=’com.developername.GameName’
}
 
I started with the AirPlay SDK Basic example located in <Install Root>\Examples\Basic
 
Now you need to export the developer certificate from your Mac using the Keychain access tool. Open up the Keychain Access app on Mac, select the keys category and expand your private key. Right click on your iPhone Developer certificate and export it as a Personal Information Exchange (.p12) file (do not set a password when exporting). Copy this to file to s3\deploy\certificates as developer_identity.car and developer_identity.key on PC (yes they are the same file). You also need to save the AppleWWDRCA.cer certificate located under the certificates section of your account on the iOS provisioning portal to the same location
 
Now that’s out the way, we can now deploy. In Visual Studio change to the GCC Release build configuration and click debug which launches the AirPlay System Deployment Tool. Select GCC Release then click Next Stage, now select the iPhoneConfig and click Next Stage. Next, select the iOS platform then click Nest Stage. Finally select Package and Install from the drop list and click Deploy All. This will package up your app and send it to iTunes to be installed to the device
A few other things to note when deplying a final app:
  • Airplay outputs a single binary that supports all version of iOS (2.x, 3.x, 4.x). Features introduced in 3.x and 4.x will not run on 2.x devices, these newer
    features are supported by the iOS Extension APIs. If you use these newer features then you should check that the application supports them at runtime and only use
    them if the features are available
  • iPhone 4 hi-res mode (960×480) is disabled by default and content for lo-res iPhone will be scaled on iPhone 4. This behaviour can be changed by setting the
    iPhoneScaleFactor=200 ICF setting
  • Icons – iphone-icon specifies default icon for all iOS devices, however, iphone-iPad and iphone-high-res should be used to specify higher res icons for iPad and iPhone4
Further information regarding AirPlay SDK iPhone deployment can be found in the documentation at <Install Root>\docs/html/deployment/deploymentguides/iosguide.html
Happy deploying and good luck, took me a few days to figure this lot out so hopefully I have saved some of you that time
DrMop signing off