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
157 changes: 157 additions & 0 deletions README.en-US.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# iChecklist
iOS App Store Submission Checklist

iOS app review can take a week or longer. Before submitting, we must perform a "self-audit" to avoid being rejected. Some issues may be known to us, but because we haven't experienced them personally, we might not "feel" the risk and could still fall into these traps. Therefore, this checklist has been created. Check every item before submitting; once confirmed there are no issues, proceed with submission.

[App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/) is the official reading material. The examples collected here are specific cases that are easier to understand and more concrete than the official guidelines.

Official rejections are divided into `Binary Rejected` and `Metadata Rejected`. The former requires re-queueing for review, while the latter does not.

### Using third-party logins such as WeChat, QQ, etc. (Binary Rejected)
The official review machines do not have QQ installed. In this case, if the app prompts the user to download QQ, it will be rejected.

```
10.6 Details

We were required to install the WeChat app before we can log-in via WeChat. The user should be able to log-in and access their account, without requiring additional applications to be installed.

Next Steps

If you choose to allow users to log-in via WeChat, please use methods that can authenticate users from within your app, such as a native web-view.
```

### Declaring IDFA usage without actually using it.
Some analytics tools use IDFA. For safety, some developers select "Yes" for IDFA usage even though they aren't actually using it, leading to rejection. The IDFA option must be selected based on the actual situation.

```
Your iTunes Connect settings indicate that your app serves third-party advertisements. However, we were unable to locate ads in your app.

Please reply to this message to provide the steps for locating third-party ads in your app. When we hear back from you, we will continue the review.
```

### Untestable functionality
I once developed [Weight Treasure](https://itunes.apple.com/app/id925697616), a software that scans and records numbers from ordinary weight scales. Since the reviewers won't buy a scale to test it, the only way to verify is through a demo video you provide; therefore, you must provide a trial video. Additionally, for any app, it is best to attach a demo video (which can be hosted on YouTube) to greatly reduce the reviewer's workload and increase the chance of approval.

```
You can provide a link to a demo video of your app in iTunes Connect. Go to "Manage Your Applications," select your app, click "Edit Information," then scroll to the "Review Notes" section and add the demonstration video access details.
```

### "Check for Updates" wording within the app
from: <https://www.v2ex.com/t/174105>

Version updates must be handled uniformly through the App Store, so your app cannot have a built-in "check for updates" feature. In March 2015, Apple updated the rules, and apps with update-checking functionality are rejected outright. You can change this to something like "Current version: xxx."

```
Your app includes an update button or alerts the user to update the app. To avoid user confusion, app version updates must utilize the iOS built-in update mechanism. We’ve attached screenshot(s) for your reference.

Next Steps

Please remove the update feature from your app. To distribute a new version of your app, upload the new app binary version into the same iTunes Connect record you created for the app’s previous version. Updated versions keep the same Apple ID, iTunes Connect ID (SKU), and bundle ID as the original version, and are available free to customers who purchased a previous version.
```

### Functionality too similar to an HTML website
I once made a mobile site: m.example.com. To get it listed quickly, I nested a UIWebview and submitted it after loading the homepage. It was rejected because:
```
the App Store does not accept or distribute web apps
```
If you simply try to copy and submit an app with the same functionality as another existing app, it may also be rejected because:
```
We found that your app duplicates the content and functionality of apps currently submitted for review.
```
from: <https://www.v2ex.com/t/120574>

### App Crashes
Since we test the app in a development environment but the reviewer uses the production environment after submission, if there are changes to the backend API, they must be kept consistent to avoid crashes. Therefore, when submitting for review, always run through the production environment.

### Copyright
from:<http://zhihu.com/question/20216099/answer/43732248>

For example, for news aggregation apps, make sure that articles without obvious authorization (e.g., BBC) do not appear during the review process.

### Mention of third-party operating system names or icons
from: <http://zhihu.com/question/20216099/answer/46606239>

Icons or names of third-party operating systems cannot appear within the app. For example, the app may be rejected for containing Android icons or keywords. Screenshots must also be taken on iOS devices because the status bar is different. Icons that are too similar to Apple's may also be rejected.

### Invitation Codes
If the app can only be accessed using an invitation code, it will be rejected:

```
2.22 - Apps that arbitrarily restrict which users may use the App, such as by location or carrier, may be rejected

2.22 Details

Your app arbitrarily restrict users by requiring invitation code to register, which is not allowed on the App Store.

We’ve attached screenshot(s) for your reference.

Next Steps

Please revise your app to remove any functionality that limits who can use the app.
```

### App screenshots lacking actual app imagery
Our app used illustrations provided by the designer for screenshots and was rejected:

```
3.3 - Apps with names, descriptions, screenshots, or previews not relevant to the content and functionality of the App will be rejected

3.3 Details

We also noticed that your marketing screenshot(s) do not sufficiently reflect your app in use.

We've attached screenshot(s) for your reference.

Next Steps

Please revise your screenshots to demonstrate the app functionality in use.

Since your iTunes Connect Application State is Rejected, a new binary will be required. Make the desired metadata changes when you upload the new binary.
```

### Keyword stuffing in the app title
A colleague doing ASO sent over a bunch of irrelevant keywords to stuff into the app title (e.g., JD, Taobao, etc.). This resulted in a `Metadata Rejected`.

```
3.4 - App names in iTunes Connect and as displayed on a device should be similar, so as not to cause confusion

3.4 Details

Your app name to be displayed on the App Store includes keywords or descriptors, which are not appropriate for use in an app name.

Specifically, the following words in your app name are considered keywords or descriptors:

宜家美物、绝美图库、装修攻略、常用软件、实惠海淘,生活助手,居家必备、时尚创意、最美装潢

Next Steps

Please revise your app name to remove all keywords and descriptions. Keywords can be entered in the Keywords field in iTunes Connect to be used as search terms for your app.

Resources

For information on how to revise your app name, please see Renaming a Project or App.

For information on changing the app name and other metadata in iTunes Connect, please see the section, “Viewing and Changing Your App’s Metadata,” in the iTunes Connect Developer Guide.
```

# Copyright Issues

Foreigners have a very strong sense of copyright, so it's best to create a separate set of data specifically for App Store review. Certain keywords, such as "android," absolutely must not appear.

Moreover, this results in a Binary Rejection, which is very serious.

```
8.5 Details Your app includes content or features that resemble a well-known third-party material, Disney, without the necessary

8.5 - Apps may not use protected third party material such as trademarks, copyrights, patents or violate 3rd party terms of use. Authorization to use such material must be provided upon request

8.5 Details

Your app includes content or features that resemble a well-known third-party material, Disney, without the necessary authorization. We’ve attached screenshot(s) for your reference.

Pursuant to your agreement with Apple, you represent and warrant that your application does not infringe the rights of another party, and that you are responsible for any liability to Apple because of a claim that your application infringes another party's rights. Moreover, we may reject or remove your application for any reason, at our sole discretion.

Next Steps

Please provide documentary evidence of rights to use this content in your app. Once Legal has reviewed your documentation and confirms its validity, we will proceed with the review of your app.
```