I made this app store pre-submission checklist to improve the odds of my apps being accepted by Apple.

  1. The app doesn’t crash. [1]
  2. The app doesn’t become slow or unresponsive after using it for a while. [1]
  3. The app doesn’t become slow or unresponsive with more data or while downloading data.
  4. The capabilities described in the app’s description are accurate. [1] [2]
  5. Do not show the price of the app inside the app or in its description. [1] [3]
  6. The app keywords match its functionality. [1]
  7. The app’s binary name is the same as or an abbreviated form of the app’s name in iTunes Connect. [1]
  8. Use the Demo Account field to tell the reviewer about any hidden functionality or “Easter Eggs.” [1]
  9. Permission has been granted to use trademarked or copyrighted material in the app, app description, keywords, artwork, or content. [1] [3]
  10. The app does not use private or undocumented APIs in the SDK. [1]
  11. If the app requires a network connection at any time, it warns the user when the network is not available. [1] [2]
  12. The app has no false positives when detecting lack of network availability. [2]
  13. The app complies with the Human Interface Guidelines[1] [2]
  14. The app does not excessively mimic the UI or functionality of a native iPhone app. [1]
  15. The iTunesArtwork file (512 pixel icon) matches the app icon (57 pixel icon) in the binary. [1] [2] [4]
  16. If the app shows a webpage, assure that it is active and pertinent. [1] [4]
  17. The version number of the app is 1.0 or higher. [1]
  18. The app does not charge users for additional functionality outside the App Store. [1]
  19. The app’s core functionality does not expire. [1]
  20. Any use of hardware accessories is authorized by Apple. [1] [4]
  21. The app does not contain material that may be considered pornographic, racist, political, obscene or offensive (to the Apple reviewer). [1] Even unintentionally. [3]
  22. The app does not contain a runtime, plugins, or run interpreted code. [1]
  23. The app does not use excessive vibration or backlight. [1]
  24. The app uses the appropriate keyboard type for the type of data being entered. [1]
  25. The selected cells in tableviews are deselected when the tableview is displayed again. [1]
  26. The app does not use “excessive” data over cellular networks. [1] [2]
  27. The hardware requirements (radio, GPS, compass) are accurately listed in info.plist. [1]
  28. The app does not have very limited functionality or a very limited audience. [1] [3]
  29. Warn the user if the app collects and sends personally identifiable information to a server and provide an opt-out. [1] Or not. [3]
  30. Warn the user conspicuously if/when the app records sound or video or takes pictures. [1]
  31. The app adhers to any applicable regulatory requirements and laws in the countries in which the app will be sold or downloaded. For example, medical apps may have to meet FDA requirements in the US. [1]
  32. The app does not simulate a failure of the hardware or software. [2]
  33. Any use of Apple-provided images matches the intended use. [2]
  34. Do not mock or make fun of public figures. [2] [3]
  35. When submitting updates, keep the description of what’s new clear and concise. [2]
  36. OS compatibililty of the app matches that specified in the info.plist. [1]
  37. The app does not contain contests with giveaways and prizes. [3] Update 02/20/2010: It appears that “promotional sweepstakes and contests” are OK under certain circumstances.
  38. “Avoid humor where it’s not expected, or where it violates the HIG.” [3]
  39. Clearly identify what’s new in descriptions to avoid perceived update spam. [3]
  40. Do not use “beta” to describe the app or its version. [4]

[1] Makayama: App Store Pre-Submission Test [2] Mobile Orchard: Avoiding iPhone App Rejection From Apple [3] Mobile Orchard: Avoiding iPhone App Rejection From Apple, Part 2 [4] iSmashPhone: How NOT To Submit An App to the App Store: Four Fatal Fails