Examples > iOS App Store Submission Checklist

A checklist to run before submitting an iPhone/iPad app to the App Store and as an example of the kind of testing checklist you can build with Testpad. Worth reading through at the beginning of projects as well as just before submission.

contributed by @testpadapp

updated 19 Nov 2013

Comments

0001
Your app...
0002
Never crashes
0003
Does not simulate a failure (e.g. crash or cracked screen)
0004
Remains responsive after long/excessive usage
0005
Does not hardcode any price information inside the app
0006
Does not make use of any private APIs in the SDK
0007
Does not make use of any undocumented features in the SDK
0008
Does not refer to hardware capabilities which don't exist on the users device
0009
Warns the user when there is no network connectivity, if it needs a connection
0010
Does not resemble (too closely) any native apps
0011
Does not replicate (too closely) the functionality of a native app
0012
Does not expire (stop working) after a certain time or number of runs
0013
Does not use any unapproved hardware accessories
0014
Does not contain contain racist material, prolonged graphic violence, graphic sexual content or nudity
0015
Does not "accidentally" contain such material, e.g. unrestricted web browsing, explicit lyrics, unfiltered collections of books
0016
Does not ridicule well-known public figures, past or present
0017
Does not contain a scripting interpreter, plugin or other runtime that can execute downloaded content
0018
Does not use continuous vibration
0019
Uses the relevant keyboard per input field (e.g. numbers for a phone number field)
0020
Deselects rows in table views after their selection causes another view to be displayed
0021
Restricts video streaming or other big downloads to WiFi connections only
0022
Makes clear to the user when private data will be sent to a server, and provides an opt-out
0023
Does not make covert or non-obvious use of the camera or microphone
0024
Uses Core Location (GPS) for a real user benefit, not just advertising or tracking (if applicable)
0092
Does not make excessive use of iCloud storage
0093
Only stores user-created content in iCloud
0094
Stores temporary files in /tmp and deletes these on exit
0095
Uses the "do not back up" attribute for files that need to persist but should not be saved to iCloud
0025
Conforms to Apple's Human Interface Guidelines
0026
// you should really use the document itself and check every section, the following are some common mistakes
0027
App looks well designed and of high quality
0028
Native button icons are consistent with their native actions
0029
Activity spinners must not spin indefinitely
0030
Buttons trigger on touch-up
0031
Screen layout can handle the double-height status bar (e.g. during phone call)
0032
App state is saved when stopping the app and restored on next start
0033
Landscape mode, if supported, looks well designed (i.e. is not accidental and bad)
0034
iPad specific
0035
Your app should work in all four orientations, but if only portrait or landscape, must support both ways up
0036
Your app doesn't nest popovers, i.e. selecting something on a popover should not display another popover
0079
Your app doesn't show more than one popover at a time
0037
Submission package details
0038
The name of your app (in the binary package) matches (or is abbreviated version of) the iTunes name
0039
Your iTunes description accurately describes the functionality of the app, i.e. it works as advertised
0040
Your iTunes description does not contain the price
0074
Your iTunes description (and the binary) do not include the names of any competing platforms (e.g. Android, Blackberry)
0076
Your iTunes description does not mention unreleased iOS version numbers
0041
Your iTunes keywords match the functionality of the app
0042
Your iTunes keywords do not contain the names of other apps
0077
If your app's price is over $100 or has in-app purchases over $100, it is rated 17+
0043
The screenshots do not include error states, including iAd errors
0044
The categories the app is in match its functionality
0045
Any easter eggs in the app are innocuous and are disclosed in the 'demo account' field
0046
Icons are provided for each of the sizes: 57, 72 (if on iPad), 114 and 512 pixels
0047
The different sizes of icon all contain the same artwork
0048
Version number (bundle version number) is >= 1.0
0049
The required-device-capabilities entry in the info.plist file match the requirements of the app
0050
Your app matches your claimed OS version compatibility
0078
NSZombieEnabled is set to NO
0083
App IP configured correctly (and signed) for
0084
iCloud enabled/disabled, with correct entitlments if enabled
0085
push notifications, with correct entitlements (for production) if enabled
0086
In App purchasing enabled/disabled
0087
Game Center enabled/disabled
0088
When updating
0051
Your iTunes "What's New" description accurately matches the changes to your app
0052
The updates to your app are real and detectable
0053
Version number is greater than the previous version number
0054
Miscellaneous
0055
The app has a reasonably sized market, i.e. is not a tiny niche or for a private audience
0056
There are no greyed out buttons or features in your app to do with a future release
0057
Lite versions of apps must not be unusably restricted; they have to "work" as is
0058
Lite versions of apps cannot be time limited
0059
Lite versions must not display the price of the full version
0060
Webpages loaded by the app, that are part of the app itself, are online and working
0071
Any associated email addresses exist and are working
0061
All (paid) app upgrades and other transactions use the App Store
0062
The app is not a simple browser window onto a website
0063
The app conforms to any regulatory requirements, e.g. if the app is medical in nature, or contains contests with prizes
0090
If relevant, official rules for sweepstakes and contests are presented in the app
0091
If relevant, the app makes it clear that Apple is not a sponsor or involved with any sweepstakes, contests or their prizes
0072
If you use encryption, you have registered with BIS and can provide documentation
0073
If your app requires signing in, you have provided test account
0075
If your app uses MapKit, it does not hide or obscure the Google logo
0080
If using the camera, your app doesn't disable the shutter sound
0089
Any references to Apple's products or apps are spelled correctly
0064
Copyright, trademark, ownership
0065
You can prove you own (or have permission to use) all the code in your app
0066
You can prove you own (or have permission to use) all the artwork in your app
0067
You can prove you have permission to use any brand names, names of public figures or other trademarked material
0068
e.g. Images and icons are not framed with a "polaroid" style (thicker at the bottom) border
0069
e.g. Images and icons do not include iPhones or other Apple products
0070
You can prove you own (or have permission to use) any videos, music or lyrics in your app

Inspired to build your own?

Watch the 2-minute introduction to testpad
(best viewed at full-screen)



find out more on the Testpad Homepage
comments powered by Disqus

Built with Testpad

  1. write your own tests and checks in minutes
  2. run tests from your iPhone/iPad/android
  3. for what you can't automate, use Testpad!

Find out more on the Testpad Homepage

including screenshots of how scripts look in real use

Feedback