GithubHelp home page GithubHelp logo

rossbeale / ios-app-store-submission-checklist Goto Github PK

View Code? Open in Web Editor NEW
37.0 6.0 1.0 95 KB

Community curated checklist for submitting an iPhone/iPad app to the App Store, includes stripped down official guidelines and experience driven notes.

ios-app-store-submission-checklist's Introduction

iOS App Store Submission Checklist

A short checklist to run through before submitting an iPhone/iPad app to the App Store. Worth reading through at the beginning of projects, as well as just before submission.

Note that this list is not fully encompassing - some new or rare issues may arise which are not present on this checklist. When in doubt, scour through Apple's official guidelines. If you find the answer you're looking for, try and help out others by contributing (submit a pull request!).

  1. Your app…
  2. iPad specific
  3. Submission package details
  4. Miscellaneous
  5. Copyright, trademark, ownership
  6. Acknowledgments

  • Does not simulate a failure (e.g. crash or cracked screen)
  • Remains responsive after long/excessive usage
  • Does not hardcode any price information inside the app
  • Does not make use of any private APIs in the SDK
  • Does not make use of any undocumented features in the SDK
  • Does not refer to hardware capabilities which don't exist on the users device
  • Warns the user when there is no network connectivity, if it needs a connection
  • Does not resemble (too closely) any native apps
  • Does not replicate (too closely) the functionality of a native app
  • Does not expire (stop working) after a certain time or number of runs
  • Does not use any unapproved hardware accessories
  • Does not contain contain racist material, prolonged graphic violence, graphic sexual content or nudity
  • Does not "accidentally" contain such material, e.g. unrestricted web browsing, explicit lyrics, unfiltered collections of books
  • Does not ridicule well-known public figures, past or present
  • Does not contain a scripting interpreter, plugin or other runtime that can execute downloaded content
  • Does not use continuous vibration
  • Uses the relevant keyboard per input field (e.g. numbers for a phone number field)
  • Deselects rows in table views after their selection causes another view to be displayed
  • Restricts video streaming or other big downloads to WiFi connections only
  • Makes clear to the user when private data will be sent to a server, and provides an opt-out
  • Does not make covert or non-obvious use of the camera or microphone
  • Uses Core Location (GPS) for a real user benefit, not just advertising or tracking (if applicable)
  • Never crashes
  • Conforms to Apple's Human Interface Guidelines
  • App looks well designed and of high quality
  • Native button icons are consistent with their native actions
  • Activity spinners must not spin indefinitely
  • Buttons trigger on touch-up
  • Screen layout can handle the double-height status bar (e.g. during phone call)
  • App state is saved when stopping the app and restored on next start
  • Landscape mode, if supported, looks well designed (i.e. is not accidental and bad)

  • Your app should work in all four orientations, but if only portrait or landscape, must support both ways up
  • Your app doesn't nest popovers, i.e. selecting something on a popover should not display another popover
  • Your app doesn't show more than one popover at a time

  • The name of your app (in the binary package) matches (or is abbreviated version of) the iTunes name
  • Your iTunes description accurately describes the functionality of the app, i.e. it works as advertised
  • Your iTunes description does not contain the price
  • Your iTunes description (and the binary) do not include the names of any competing platforms (e.g. Android, Blackberry)
  • Your iTunes description does not mention unreleased iOS version numbers
  • Your iTunes keywords match the functionality of the app
  • Your iTunes keywords do not contain the names of other apps
  • If your app's price is over $100 or has in-app purchases over $100, it is rated 17+
  • The screenshots do not include error states, including iAd errors
  • The categories the app is in match its functionality
  • Any easter eggs in the app are innocuous and are disclosed in the 'demo account' field
  • Icons are provided for each of the sizes: 57, 72 (if on iPad), 114 and 512 pixels
  • The different sizes of icon all contain the same artwork
  • Version number (bundle version number) is >= 1.0
  • The required-device-capabilities entry in the info.plist file match the requirements of the app
  • Your app matches your claimed OS version compatibility
  • NSZombieEnabled is set to NO
  • App IP configured correctly (and signed) for
    • iCloud enabled/disabled, with correct entitlments if enabled
    • push notifications, with correct entitlements (for production) if enabled
    • In App purchasing enabled/disabled
    • Game Center enabled/disabled
  • When updating
    • Your iTunes "What's New" description accurately matches the changes to your app
    • The updates to your app are real and detectable
    • Version number is greater than the previous version number

  • The app has a reasonably sized market, i.e. is not a tiny niche or for a private audience
  • There are no greyed out buttons or features in your app to do with a future release
  • Lite versions of apps must not be unusably restricted; they have to "work" as is
  • Lite versions of apps cannot be time limited
  • Lite versions must not display the price of the full version
  • Webpages loaded by the app, that are part of the app itself, are online and working
  • Any associated email addresses exist and are working
  • All (paid) app upgrades and other transactions use the App Store
  • The app is not a simple browser window onto a website
  • The app conforms to any regulatory requirements, e.g. if the app is medical in nature, or contains contests with prizes
  • If relevant, official rules for sweepstakes and contests are presented in the app
  • If relevant, the app makes it clear that Apple is not a sponsor or involved with any sweepstakes, contests or their prizes
  • If you use encryption, you have registered with BIS and can provide documentation
  • If your app requires signing in, you have provided test account
  • If your app uses old style MapKit, it does not hide or obscure the Google logo
  • If using the camera, your app doesn't disable the shutter sound
  • Any references to Apple's products or apps are spelled correctly

  • You can prove you own (or have permission to use) all the code in your app
  • You can prove you own (or have permission to use) all the artwork in your app
  • You can prove you have permission to use any brand names, names of public figures or other trademarked material
    • e.g. Images and icons are not framed with a "polaroid" style (thicker at the bottom) border
    • e.g. Images and icons do not include iPhones or other Apple products
  • You can prove you own (or have permission to use) any videos, music or lyrics in your app

Want to improve the list? Submit a Pull Request!

ios-app-store-submission-checklist's People

Contributors

rossbeale avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mehulb190

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.