Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
257 changes: 164 additions & 93 deletions iOS-App-Store-Submission-Checklist.txt
Original file line number Diff line number Diff line change
@@ -1,93 +1,164 @@
Your app...
Never crashes
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)
Does not make excessive use of iCloud storage
Only stores user-created content in iCloud
Stores temporary files in /tmp and deletes these on exit
Uses the "do not back up" attribute for files that need to persist but should not be saved to iCloud
Conforms to Apple's Human Interface Guidelines
// you should really use the document itself and check every section, the following are some common mistakes
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)
iPad specific
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
Submission package details
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
Miscellaneous
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 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
Copyright, trademark, ownership
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
Update a Checklist for iOS App Submission

1. Functionality
1. App is crash free.
2. App don’t exhibit a bug, blocker or hang after long /excessive usage.
3. App perform as advertised by the developer.
4. App doesn’t include undocumented or hidden feature inconsistent with description.
5. App is not using private apis
6. App don’t reads or write data outside its designated container area.
7. App is not duplicate of another app on appstore.
8. App is not useful unique or only website bundle as app will be rejected.
9. App that only have social login (i.e facebook, google) but not custom registration will be rejected.
10. App doesn’t provide trick or fake functionality that is not clearly marked
11. All links in your app are functional.
12. App is complete. All images and text in your app before sending it in for review are finalised . Apps that are still in progress and contain placeholder content are not ready to be distributed cannot be approved.
13. App does not alter or disable the functions of standard switches, such as the Volume Up/Down and Ring/Silent switches, or other native user interface elements or behaviors.
14. Apps created from a commercialized template or app generation services will be rejected.
15. Watch App does not only tell time.
16. Xcode project must include a 1024x1024px App Store Icon in PNG format. Without providing the icon in the Asset Catalog or via iTunes Connect, apps cannot be submitted for App Review or Beta App Review.
17. App Version 1.x.3 must be greater than the last approved version 1.x.2.
18. app doesn’t offer much functionality or content, or only applies to a small niche market, will be rejected.
19. Video streaming content over a cellular network longer than 10 minutes is using HTTP Live Streaming and include a baseline 192 kbps HTTP Live stream.
20. Apps has not empty ad banners or test advertisements.
21. Apps that are primarily iCloud and iCloud Drive file managers includes additional app functionality.
22. Your app is not dependant on another app to install.
23. Don’t create multiple Bundle IDs of the same app
24. App does not encourage excessive consumption of alcohol, illegal substances or encourage minors to consume alcohol or smoke cigarettes.
25. App is following data storage guideline.
26. App notify exact usage and obtain user consent before collecting, transmitting, or using location data.
27. App does not use location based APIs for emergency services.
28. App is using APN API to use push notifications
29. Apps does not send sensitive personal or confidential information using Push Notifications.
30. App does not use Push Notifications to send advertising, promotions, or direct marketing.
31. App does not charge user for using push notification.
* 1. Framework
1. App using facial recognition for account authentication are using LocalAuthentication (and not ARKit or other facial recognition technology), and also use an alternate authentication method for users under 13 years old.
2. App using ARKit should provide rich and integrated augmented reality experience, merely dropping a model into an AR view or replaying animation is not enough.
3. App have privacy policy that that utilize ARKit, Camera APIs, Photo APIs, or other software for depth of facial mapping information.
4. App is not using data gathered from depth and/or facial mapping tools (e.g. ARKit, Camera APIs, or Photo APIs) for advertising or other use-based data mining.
5. App using CallKit or including a SMS Fraud Extension only block phone numbers that are confirmed spam.
6. App does not write false or inaccurate data into HealthKit.
7. Apps using Apple Pay provides all material purchase information to the user prior to sale of any good or service.
8. Apps using background location services must provide a reason that clarifies the purpose of the use.
9. Apps using the Apple Music API that trigger playback without explicit user action will be rejected
10. Apps using the Apple Music API expose and respect standard media controls such as play, pause and skip.
11. Apps that browse the web is using the appropriate WebKit framework and WebKit Javascript.
1. Metadata
1. Don’t market your app with features or content it does not have.
2. Screenshots are showing the app in use, not merely the title art, login page, or splash screen.
3. If your app includes in-app purchases, Your app description, screenshots, and previews clearly indicate whether any featured items, levels, subscriptions, etc. require additional purchases.
4. App name is of maximum 30 characters and does not include price.
5. Apps with previews that display personal information of a real person without permission will be rejected
6. App previews that include content played or streamed via the app (e.g. iTunes playlist, YouTube streaming video) that is not licensed for use in the preview will be rejected
7. If some features require signing in, do you provide a valid demo account username and password.
8. Your contact information is complete and up-to-date on itunesconnect.
9. Your app description and screenshots clearly and accurately convey your app functionality.
10. most appropriate category is selected for your app.
11. Don’t try to pack any of your metadata with trademarked terms, popular app names, or other irrelevant phrases just to game the system.
12. App name is unique.
1. Extensions
1. Keyboard extension is following sticker guidelines if keyboard include images or emojis.
2. Keyboard extensions that does not provide Number and Decimal keyboard types as described in the App Extension Programming Guide will be rejected.
1. Content and Intellectual property rights
1. Don’t include the ability to download music or video content from third party sources (e.g. YouTube, SoundCloud, Vimeo, etc) without explicit authorization from those sources
1. UI Do’s and Don’ts
1. Your app meet following requirement related to UI.
1. Users can see primary content without zooming or scrolling horizontally.
2. Controls (that measure at least 44 points x 44 points) can be accurately tapped with a finger.
3. Text size is at least 11 points so it's legible at a typical viewing distance without zooming.
4. there is ample contrast between the font color and the background so text is easily readable
5. Text does not overlap.
6. Images are not blurry and distorted.
7. Text, Images and buttons are properly aligned.
8. Layout is easy to read.


Your app...
* 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)
* Does not make excessive use of iCloud storage
* Only stores user-created content in iCloud
* Stores temporary files in /tmp and deletes these on exit
* Uses the "do not backup" attribute for files that need to persist but should not be saved to iCloud
* Conforms to Apple's Human Interface Guidelines
* // you should really use the document itself and check every section, the following are some common mistakes
* 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)
* iPad specific
* 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
* Submission package details
* 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 entitlements 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
* Miscellaneous
* 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 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
* Copyright, trademark, ownership
* 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