1 July 2011
Familiarity with ActionScript 3 and its object-oriented features as well as familiarity with Flash application development.
Intermediate
Getting your application accepted into the Apple App Store can be a confusing and difficult process to navigate. Developers often run in to common pitfalls that add time to their submission cycle. Use this guide to understand the steps you can take to make your submission as pain-free as possible.
Using Adobe AIR for iOS support in Adobe Flash Professional CS5.5 or Adobe Flash Builder 4.5 to get your content to the Apple App Store involves three main steps:
Note: The Application Loader utility is available only for Mac OS X 10.5.3 or later. In Windows, you can run Mac OS X inside a virtual machine.
Before you start to package your AIR app for submission, make sure you take care of some key considerations to ensure your users have the best experience possible. These considerations fall generally into two categories: performance and usability. To make sure you have built a high-performing app, test your application on a variety of devices.
Typically, the iPod touch is faster than an iPhone in the same class of hardware. For example, the iPod touch 32GB and iPod touch 64GB are faster than the iPhone 3GS, even though they're in the same class of hardware. The iPhone 4 and the iPad both share a common processor, which are the fastest among all the iOS devices. (For more information, see Scott Petersen's article, Optimizing content for Apple iOS devices.)
The second key consideration to ensure you have a great app is usability. There are many similarities as well as differences between building an AIR app for an iOS device and building an AIR app for the desktop, or even a SWF for the web. Even more so than on the web, users spend only a few minutes in your app and are quick to leave it for something else. Your app should expect to be shut down by the iOS at any time and for any reason. This is exacerbated on iOS devices because of incoming calls or SMSs and can happen for a variety of reasons, including low memory conditions. So be sure to save your state often. If you're building a puzzle game, make sure you save the user's state so the user doesn't have to replay the puzzle halfway through. If you're building a RPG, save the last trading state of the app. For examples of iOS apps that do this, check out Chroma Circuit or Trading Stuff.
Another thing to consider when building your AIR apps for iOS—that is different from web apps—is how to use the finger as a pointing device. The finger is quite a bit different than a mouse. No matter how hard you try, your finger is an inaccurate device compared to a mouse. Even when it seems like it's tapping in the same place, the finger often moves around slightly. Try to ensure that your app takes that fact in to account, and make your hit targets much larger than you would in a web app.
Once you've built a well-performing app that provides your user with a great experience, you're ready to submit it to the Apple App Store.
Thus far, you have been testing and deploying to devices using a development certificate and a development provisioning profile. These two are used for your development environment. For deploying apps to the App Store, you need a distribution certificate and a distribution provisioning profile.
To acquire the distribution certificate:
Once you have the distribution certificate, you will need to create a distribution provisioning profile:
Once you have your new distribution certificate and your distribution provisioning profile, you will need to rebuild your application:
In Flash Builder 4.5:
In Flash Professional CS5.5:
Skipping any of these steps when you build an app for deployment often causes an app to get rejected, so make sure all the right certificates and provisioning files are properly included.
Apple requires that your application have an application icon, App Store icon, and launch image:
As you design your icons, you should make them appear as flat square icons without the iOS half-circle gleam (or glossy, round beveling) effect, as this is automatically added by the iOS. If you desire to have a flat icon without the gleam, you can add a flag to a custom application.xml file that informs the iOS to not draw the gleam. For more information, consult the Application Icons and Application Launch Images sections of the iOS Application Programming Guide in the iOS Reference Library. Additional information is included in the Application icons section of the Building Adobe AIR Applications guide.
Once you've prepared your iPhone Application (.ipa) file, you'll need to fill out the required forms on the iTunes Connect site to submit the application to Apple. In filling out the information, be as transparent as possible to Apple, including any demo accounts that might be needed to run your app. Because the Apple reviewers must be able to verify your application, providing the information required ahead of time will help your application get through the review process more quickly. Note that Apple's policy stipulates that your app's keywords cannot contain your app's name.
To submit the app:
Your app should now be in a "Waiting for upload" state. Complete the rest of the process with the Application Loader utility.
Note: The Application Loader utility is available only for Mac OS X 10.5.3 or later. In Windows, you can run Mac OS X inside a virtual machine.
The Manage Your Apps page of iTunes Connect should now list an updated status for your application. See the iTunes Connect Developer Guide (PDF), available from the iTunes Connect website, for information about the application statuses.
I hope that the tips provided here will help you build an application that can be submitted to the App Store and go through the Apple approval process without a hitch. Check out the resources on the Apple iOS topic page to learn more about building mobile apps for iOS devices.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License
| 04/23/2012 | Auto-Save and Auto-Recovery |
|---|---|
| 04/23/2012 | Open hyperlinks in new window/tab/pop-up ? |
| 04/21/2012 | PNG transparencies glitched |
| 04/01/2010 | Workaround for JSFL shape selection bug? |
| 02/13/2012 | Randomize an array |
|---|---|
| 02/11/2012 | How to create a Facebook fan page with Flash |
| 02/08/2012 | Digital Clock |
| 01/18/2012 | Recording webcam video & audio in a flv file on local drive |