The entire process of publishing an iOS app developed with uni-app to the App Store

1.0.3 20200927

Update the official status of the app review process.

Note: The latest review will be followed up by synchronizing another record in the community with AppStore review rejection reasons and solutions.

: Apple development and listing FAQ | appuploader usage tutorial
1.0.2 20200925

Added measures to resolve rejection emails for the first time.

1.0.1 20200922

Steps and procedures for first-time submission on the App Store:
Compatibility check -> Account application -> Certificate application -> Release preparation -> App Store listing -> Review follow-up
Submit review iOS review team contact information;

This note is used to record the entire process from developing a project using HBuilderX to packaging the iOS app package and putting it on the App Store. I hope it can give some help to friends in need.

The order depends on the person. I mainly follow the following steps:

Compatibility check -> Account application -> Certificate application -> Release preparation -> App Store listing -> Review follow-up:

1. Compatibility check:
  • Layout screen width adaptation (css style: such as font size, spacing, etc.)

like:

Class style in input
:class="iosPlus ? 'biaotiIOS' : 'biaoti'"
  • Plug-in compatibility (such as word and other document previews involved in my personal application, Tencent Cloud verification code adaptation processing and face recognition verification compatibility, etc.)
  • Official API difference checking (such as some APIs of Native.js for iOS)
  • Useful platform automated testing tools, such as IPA guard testing service
2. Account application:

Regarding account types:

Account type

  • Due to policy reasons, the company is not as easy to apply as before, and the application time is expected to be one week; (I applied for a “personal account” and it took about two days)
  • Company and enterprise account applications require a Dun & Bradstreet code. If you have not applied for a Dun & Bradstreet code, please apply for a Dun & Bradstreet code first. This process takes one to two weeks.

Registration application

  1. Register Apple account apple id
  2. To enable two-factor authentication, you need to operate it on an IOS phone/iPad
  3. Download the Apple Developer APP from the App Store to register a developer account
  4. Go to the Apple Developer app and fill in the application information
  5. Bind Alipay or WeChat to pay Apple annual fee (¥688 yuan/year)
3. Certificate application:
3.1 iOS certificate (.p12) and description file (.mobileprovision) application

detailed steps:

  1. Generate certificate request file
  2. Apply for Development certificate and description file
  3. Apply for production certificate and description file

For details on the application steps, see iOS Certificate and Description File Application

image

Production certificate is used in the official release environment and is used to submit to the Appstore for review and release. The ipa packaged with the published certificate cannot be installed directly on the mobile phone.

According to the above steps, you will finally get the following files on your local machine:

image.png

The red lines are the documents required for packaging, and the others are auxiliary documents generated during the application process.

3.2 Certificate about IOS
  1. iOS Development Certificate: The iOS development certificate is used to test the APP. During the development process, it is installed on an Apple mobile phone to test the operation of the APP.
  2. iOS publishing certificate: When the APP is developed and tested and goes online, it needs an iOS publishing certificate. Only the ipa packaged with the iOS publishing certificate can be uploaded to the App Store for review.
  3. iOS push certificate: iOS push certificate is used for push notifications. The messages we usually see in the system bar drop-down of the phone are push notifications. If you want to do this function, you need to configure a push certificate.
  4. iOS Enterprise Certificate: It can be installed on mobile phones and used without restrictions on the number of devices on the App Store.
4. Release Preparation

Preparation work before putting on the shelf

Before putting the application on the shelves, we need to have a general understanding of the process of putting the application on the shelves, the review standards and specifications, what prerequisites the application should meet, what bottom-line rules must not be touched, etc., so that it can successfully pass the review and be put on the App Store.

Apple application review uses a combination of manual review and automatic review. It is roughly divided into three parts, pre-review, machine review and manual review.

4.1 Familiar with the listing process

At present, the entire application review process is roughly divided into five stages: Prepare For Upload (preparing to upload), Waiting For Review (waiting for review), In Review (review), Pending Developer Release (waiting for developer release), Ready For Sale (preparation) Sale).

After the APP is uploaded, it will enter the Wait for Review state, and then enter the In Review state. In Review will usually be approved or rejected in about 2 days.

  • After the .ipa package is uploaded, it will first enter the pre-examination and will be scanned for APIs, etc. After passing the pre-examination, it will appear in iTC and then it can be submitted to Waiting;
  • In the Waiting For Review stage, it is usually a machine review. The machine review mainly conducts a machine review of the code to check whether the APP is used repeatedly. The “2.1 Apple Year of the Dog Gift Package” incident relied more on automatic machine review and reduced manual work. cost;
  • After passing, you will enter the In Review stage, which is the manual review stage. This stage mainly looks at the metadata of the App, such as APP cover, functions, experience, etc., focusing on user experience.
4.2 Read the latest application review standards-“App Store Review Guidelines”

It is normal to be rejected, but the prerequisite is that we must understand the content of the review specifications, comply with the relevant requirements, and adjust the issues according to the rules.

Image source: App Store rejection instructions.

2020-09-212020-09-212020-09-222020-09-222020-09-232020-09-232020-09-242020-09-242020-09-252020-09-252020-09-262020-09-26202 0- 09-272020-09-272020-09-28 Application review assurance: Ensure the security of each note: privacy, data security, etc. Performance: application integrity, hardware compatibility requirements Business: clear business model, clear subscription business rule model, etc. Design: Good page interaction design, refined design and compliance with relevant programming guidelines Legal: Apps must comply with all legal requirements wherever you can use them Prompt follow-up and resolution of errors Log reporting Before AppStore submission After rule submission

4.3 Be familiar with common rejection issues:
  1. Crashes and errors (leaving this to the iOS review team to discover is too much)
  2. Broken links: All links in the app, including private links provided by the offer description, must load properly
  3. Placeholder content: such as informal functional images and text, etc.
  4. Applying for permission: Sensitive user data API is referenced, see for details
  5. The screenshot is incorrect (see – Size Requirements Specification for details)
You can use the iOS simulator that comes with XCode to run the screenshot directly in the HBuildeX tool. For example, I am using an iPhone 11 Pro Max (13.6) corresponding to a 6.5-inch display (1242 × 2688 pixels)

Create iOS simulator

In HBuilderX, click the top menu bar Run – Run mobile phone or simulator – iOS simulator

image

6. Incomplete information: demo account username and password are required
7. Unqualified user interface: The application needs to maintain a refined and user-friendly interface, in line with iOS UI Design (industry standard specifications, I agree!)

5. App Store listing
5.1 App store creation app
5.2 Fill in the various review information of the APP
  • Version Information
  • General Information

If the “Edit Age Rating” is 4+ years old, IDFA cannot be used according to Apple’s latest specifications

5.3 IOS packaging (generate .ipa files)

At this point, the iOS certificate (.p12) and description file (.mobileprovision) files have been successfully obtained by default. Otherwise, please complete step 3 first!

  • Taking the HBuilderX tool as an example, open the project to be published – Release – Native App Cloud Packaging

  • After successful packaging, the download link will be output in the console:

    image

  • Upload the binary file of the App through Transporter App (the above package generates the linked .ipa file)

5.4 Upload .ipa package to App Store Connect

Utilize third-party IPA upload tool: appuploder tool

Upload the build version and view the delivery progress (including warnings, errors and delivery logs) and delivery history

5.5 Use TestFlight to test the Beta App
  • Install TestFlight on the iOS device used for testing;
  • Build the beta version on TestFight in App Store Connect:
  • In Internal Group – New Tester:
  • After clicking the invitation, the member’s email will receive a redemption code:
  • You can then open the build in TestFlight

About TestFlight:

1. Each build has up to 90 days for testing;
2. If the App Store version of the App is installed on the test device, that version will be replaced by its Beta version;
3. After the beta version app is downloaded, an orange dot will appear next to its name indicating that it is a beta version.
5.6 Submit for review!

The review sometimes takes a day or two, or it may take a few days, so you need to check the email in time.

If it becomes available for sale, congratulations, you have successfully listed it on the App Store!

6. Audit follow-up

It was expected that I would be rejected. I received an email from the App Store Review the day after I submitted it for review (around 6 a.m.).

6.0 My rejection experience

First email:
September 25, 2020 06:48

September 25, 2020 6:48 am
Sender Apple
Other-Other
Hello,

The review of your app is taking longer than expected. Once we have completed our review, we will notify you via Resolution Center.

If you would like to inquire about the status of this review, you may file a request via the Apple Developer Contact Us page.

Best regards,

App Store Review

translate:
This means that this review will take a long time. We will be notified when the review is completed.

analyze:
After consulting relevant information, the content of this email can be understood as a censorship strategy for developer accounts. The title of the email is: Other – Other, which is said to be a brand new reason for rejection!

Speculations of the majority of netizens:

  • Apple’s review mechanism has changed;
  • Apple is going to review your account;
  • Apple has been too busy recently. It knows it will delay the review, so it will put your rejection there first and wait until it’s your turn.
  • Considering the recent special environment, it may be the ZF reason.

solution:

1. Wait! The email already stated that you just need to wait for the other party’s reply.

2. If you are in a hurry, follow the prompts and select Contact Us to submit the appeal.
That is, click “Apple Developer Contact Us” in the email –> App review –> select “App review status” / “App rejection clarification”.
(Apple should automatically reply to an email at this time, and it will take about one to two days for a formal reply to the email)

My reply:

Dear AppStore review team, hello.
I received an email about my app review rejection, the content is probably ``'The review of your app is taking longer than expected...' This is my first time submitting an app in the AppStore, I am very excited and happy! If it is found that there are any abnormal problems in the submitted application, I think I will be happy to actively cooperate with the rectification, and look forward to your reply. Good luck!

In other words, I received the rejected email and expressed my willingness to cooperate with the rectification and looked forward to a formal reply.

In short, the attitude is very sincere and willing to actively cooperate.

Overall rough process:

Receive Other-Other rejection –> Ask about the review status according to the email prompt –> Receive an official reply in about 2 days (mentioning that your request will be forwarded to other internal teams) –> Receive and complete it in another 2 days Account investigation email + in review email –> You may receive questions about adjustments that need to be made and be rejected again –> Modify the code and resubmit –> In review, passed the review!