IOS application review and release process

Hello, everyone, I am the talented brother.

Recently, a lot of friends came to me to ask some questions about iOS app launch. Today, I would like to take a moment to sort out the pit I stepped on and share with you!

0. Get ready to start

Before the subsequent operation, you need to have an Apple developer account, which can be applied to the Apple developer background. I have not operated the specific. Here as you know, of course, many students should have a sub-account corresponding to the function, and then responsible for their own product review and release operation.

In most cases, for product operation students used for review and release, it is enough to provide App management sub-account; For the developer of application package, you can provide the developer sub-account.

You can set the account permissions based on actual requirements. The following is a description of the account permissions for different functions

The function describe
Account holder The “Account Holder” function will be granted to those who complete scheme registration. The user is responsible for signing legal agreements with Apple.
management The team’s secondary contact has many of the same responsibilities as the “account holder.” Admin has access to all apps. If Management is a member of an organization team, you have access to certificates, identifiers, and Description files by default.
financial Manage financial information, including downloading reports and uploading tax returns. Users with this function can view all apps in Payments and Financial Reporting, Sales and Trends, and App Analytics.
The App management Manage all aspects of the App, such as pricing, App Store information, and App development and delivery.
developers Manage App development and delivery.
marketing Manage marketing materials and promotional graphics. If your App is likely to be featured in the App Store, Apple will contact users who have this function.
sales Analyze App sales, downloads, and other analytics data.
Customer support Analyze and respond to customer reviews on the App Store. Users with only “Customer Support” functions will go directly to the “Ratings and Reviews” section when they click on App in my App.

1. Create an application

You must create an App record in the App Store Connect account before you can upload a build of your App to App Store Connect.

Backend url: Appstoreconnect.Apple.com/

Necessary functions: “Account Holder” function, “App Management” function or “Management” function.

Create process:

  • In My App, click the Add button (+) in the upper left corner.

    The My App page is blank until you create your first App record.

  • Please select “New App” from the pop-up menu.

  • In the New App dialog box, select one or more platforms and enter App information.

  • Click Create and watch for messages indicating missing information.

Note: If the name is occupied, you need to use the copyright number to appeal to Apple

Once you’ve done that, you’ve created an App record and you’ll see the page below.

Next, you need to improve the App with more information.

2. Perfect App information

When creating an App for the first time, you need to complete a lot of information: App information, price and sales scope, App privacy, etc.

2.1. The App information

Click the App information in the synthesis, and you can fill in the relevant information of the App. Some information can be modified, and some information can be permanently determined when it is generated.

The information you need to fill in is as follows

Name: The name of the game, 2-30 characters long, will not be displayed on the App Store until the name is approved.

Subtitle: The line of 0-30 characters below the name of the game in the App Store. The subtitle will not appear in the App Store until it has been approved.

Package ID: The package ID must match the ID used in Xcode, which cannot be changed after the first build is uploaded.

Main language: If you select only one language, there is no need to operate, otherwise you can set your own language, the main language will be displayed in the App Store immediately.

Category: Two subcategories can be selected under the major category (the subcategories are not displayed in order in App Stroe, which seems to be displayed randomly), and a minor category can also be selected.

Age classification: select according to the prompts when editing, an age number will be automatically given, and you can return to adjust yourself if you feel inappropriate.

2.2. Price and sales scope

Price is a free or paid App that determines the price on the App Store and how much you earn. If your App is free, select “Free”; If you want to sell your App, you must have a paid Application Agreement.

The range of sales is country and region, which country or region of the App Store can download your App, of course, you can choose to remove your App here.

Here, you can actually choose the Settings of the last compatible version. Some users may not have compatible devices with the latest App version. In order to let them continue to use your App, we provide them with the last compatible App version. For this setup, remember to make a choice based on current requirements in practice.

2.3. The App privacy

As our country becomes more and more sensitive to user privacy, and Apple has always been sensitive to user privacy, this part is now important and detailed.

Privacy policy

The URL that links to the privacy policy is required and all apps must provide a privacy policy.

The data collection

Most of the apps or tripartite tools they use involve collecting user information to some extent. If so, it needs to be explained here. Click Next and check it according to the actual situation.

After completing the above operations, we have basically completed the information registration of an APP and can start the follow-up operations.

3. First version review

Generally speaking, the first version of the trial will be more or less hit back, do not panic. Of course, if the old driver is in charge of this module, it can improve the review rate to a certain extent. However, there is usually no time urgency to get up early for an interview, so it doesn’t hurt to try more and gain experience.

I believe that in most cases, the first trial version is just for the trial test, not the official version, so we strongly suggest that the version number in the version information be filled in as 0.x.x.x. For details, please consult with the students in charge of packaging in the project team. 1.x.x.x will be added in the future version, but this is not mandatory.

3.1. The metadata

Metadata is the version information that needs to be filled in. Click Create APP APP Record.

The following types of metadata need to be prepared:

App preview and screenshots are often referred to as promotional videos and five photos (store photos). Screenshots must be in JPG or PNG format and must use RGB color space. App previews must be in M4V, MP4 or MOV format and cannot exceed 500 MB

The promotional text can be interpreted as a paragraph that introduces the game’s selling points, and this can be dynamically modified after the release

Description A description of your App, used to detail the features and functions, generally used to extract the selling point + description paragraph

Keywords Add one or more keywords to describe your App. Keywords will make the App Store search results more accurate, separated by English comma, Chinese comma (or a combination of both) keywords (common ASO, such as recent popular games as keywords, etc.)

Technical support website literal meaning, the most simple to fill the company’s official website

Marketing website literal meaning, can not fill

The version that we talked about at the beginning, the one that starts with 0 before it goes live, the one that starts with 1 after it goes live, notice that it increments each time

Copyright The name of the person or company that holds exclusive rights to your App, preceded by the year in which the rights were acquired (e.g. “2008 Acme Inc.”)

App review information is more important, especially for the first review, for the game that needs to log in, fill in the user name and password, the remarks can explain how to log in and the alternate user name and password, and fill in your responsible person’s contact information. If you are afraid that the auditor will not be able to operate, it is recommended to write an operation guide in Both Chinese and English as an attachment to upload

Version release type I usually move release, depending on the specific situation

As for some standard requirements of metadata, there is a clear introduction or guidance in the corresponding filling position. As the student in charge, IT is suggested to organize it into an Excel document with instructions in the remarks. It is good to find relevant students to confirm the corresponding content before each questioning.

3.2. Build

For the students in charge of the review, the build version is actually just to select the version that needs to be used for review from the version that has been uploaded by the front-end Xcode.

The general process is as follows: the front end of iOS packaging (or other functions) will upload the build version of the iOS package testing OK through Xcode, macOS Transporter or Altool, and then the students in charge of the review will select the build version in the background.

Once the above is done, click save in the upper right corner, and then check that there are no problems to add for review.

4. Review your rejection experience

The audit was rejected is more common, the number of rejected, behind will not be rejected, because the pit has stepped on it.

It is recommended that everyone (planning, programming, QA, etc.) read the guidelines before arraignment

Developer.apple.com/cn/app-stor…

Apple reviews calls with specific violations, descriptions and recommendations for changes.

4.1. The metadata

There are several common types of metadata errors (which I have encountered) :

The App name or subtitle contains price information such as free, for example, it is not ok to send heroes for free, but can be changed to send heroes, which is a violation of Article 2.3.7

Screenshots or previews of games that do not exist in the game, such as screenshots with a hero that does not exist in the game, are a violation of 2.3

The provided account password cannot be logged in, so the audit test is blocked (it may be the wrong account password, or the wrong login method, please refer to the description of the call back).

4.2. Version integrity

Version integrity actually means that the version functions provided can be used normally, generally this case is called back 2.1:

  • Game crashes (suggest fixing crash)
  • Adaptation problem (suggested to solve adaptation)
  • There are unopened functions such as please expect (it is suggested to hide the entrance)

In addition, for example, there is a third-party login method such as wechat login, but there is no wechat on the device of the auditor. When using this login method, wechat will be guided to download or the device is not installed wechat, which is not in line with the requirements. The reason for calling back is generally 4.2.3. In this case, it is recommended to check the local dependency APP installation status to determine whether to display the corresponding button.

In fact, there are many cases of call back, we can check the corresponding terms and games for corresponding check, and then targeted modification on the line.

For the case of call back, unless it is a new installation package, after the modification (metadata or hot update), you can directly reply to the email on the call back details page to explain the repair, and then apply for a review, instead of manually submitting the review on the App version information page!

5. About Test Flight

With TestFlight, you can easily invite users to test your app and gather valuable feedback before it is released to the App Store. Invite up to 10,000 testers simply by using the recipient’s email address or by sharing an open invitation link.

At the top is the TestFlight option, which takes you to the action page.

You can choose between two types of tests in TestFlight, internal and external.

5.1. Internal testing

You can create internal groups and add up to 100 internal testers. Testers in the group will test the App through the TestFlight Beta. Builds can be distributed manually to appropriate internal groups, or they can be distributed automatically by the system.

It is important to note that internal testers are users on our App Store Connect team who have “administration”, “App management”, “developer” or “marketing” functions and who have access to all valid builds.

Each App can invite up to 100 internal testers. If only internal testers are invited, additional test information is left blank.

No “TestFlight App review” is required when distributing a Beta build to internal testers (members of the App Store Connect team) for testing.

5.2. External testing

If external testing is required, create groups of external testers, assign builds to the groups, and then invite testers via email or public links.

Email format

Open link form

Distribute a Beta build to external testers, and the build needs to be reviewed.

The first build of each App version requires a full review, and subsequent builds usually only require a basic review.

6. About reservations

All new apps available on Apple platforms can be set up for subscription when App Store Connect submits apps and metadata for approval. When joining, you can select a release date from 2 to 180 days in the future. Once the app is available for download, customers who have pre-ordered it will be notified and the app will be automatically downloaded to their device within 24 hours.

Update your App by creating and submitting a new version while it is available for pre-order. New versions must be approved before they are released as pre-orders on the App Store. If a version update is submitted during the pre-order period, customers will receive the latest version published on the App Store once the App is made available for download.

You can also adjust the price of the App during the pre-order period, but please note that if you change the pricing, you will be charged at the lower price between the price the customer accepted the pre-order and the price on the launch day.

Specifically in the price and sales range page for booking Settings.

7. About launching shelves

After approval, you can publish the operation.

According to past experience, generally around 1 am will enter into the audit, basically 2-3 hours will be the result.

8. On internal purchase recharge

The first in-app purchase must be submitted with the new App version. Please create your in-App purchases, then go to the “App Store” page of the App, select from “In-App Purchases”, and click “Submit”.

In-app purchases generally fall into one of the following categories, with most mobile games using consumable items and occasionally subscriptions.

8.1. Initial application

When applying for the in-app purchase project for the first time, a new version should be submitted for review so that the reviewers can test the in-app purchase function.

Test in-app purchases throughout the development process to ensure that common purchase scenarios such as subscription offers, interrupted purchases, or refunds are handled correctly by the app and server. Early in development, Xcode can be used to simulate and test in-app purchases. You can also use the StoreKit testing feature in Xcode to test in-app purchases in your local environment without having to connect to an App Store server. After configuring in-App purchase items in App Store Connect, you can test them using real product information in a sandbox environment.

When ready, TestFlight can be used for internal testing. In-app purchases in TestFlight use a sandbox environment, so they are free to testers and are not transferred to production after the app is released to the App Store.

After you’ve finished testing your in-app purchases, you can submit them for review.

View or create a new in-app purchase item on the feature-APP Purchase item page.

When creating an in-purchase project (using consumable as an example), the action page is as follows:

You can see the following in-purchase item metadata information:

The reference name will be used in App Store Connect and “Sales and Trends” reports, will not appear on the App Store, and must be no longer than 64 characters long

Product ID Is a unique alphanumeric ID used for reporting. Once a product ID is used for a product, it cannot be used again even if the product is deleted. (I usually use the package name + timestamp combination, such as XX.xx.cn1648569635

Pricing is top-up gear

Display name The name of the in-app purchase item that will be displayed on the App Store

The description depends on the configuration of items purchased in your App and may also be visible to customers

** Screenshots of review information ** Screenshots will only be used for review, it will not be shown on the App Store, you can capture the page of recharge slot

8.2. Added later

The metadata information needed to be filled in the new in-app purchase project is basically the same as the initial application. If the new in-app purchase project is newly added for several times, it is suggested to upload it together with the new version, so that the new in-app purchase project can also be tested completely to avoid mistakes.

Through my personal testing, I found that when I added the in-app purchase item again after many versions were submitted for approval, I only needed to make sure that the metadata was ok (I tried to upload an unrelated picture in the screenshot, but it also passed).

If you want to modify the pricing or other metadata information of the approved in-app purchase top-up item, you can directly click the corresponding in-app purchase top-up item to modify and save it.

9. Here are some tips

There’s nothing more to say, but apple has a very detailed explanation.

Getting started with App Store Connect

Help.apple.com/app-store-c…

IOS Arraignment guide

Developer.apple.com/cn/app-stor…

Of course, if you do not understand the place, you can add just brother friends, exchange and learn together!