Say goodbye to being rejected, how to improve the pass rate of iOS review (Part 1)

iOS review has always been a mountain for every mobile product to be put on the Apple store. Every review is like a long and tragic journey, and it is often rejected by Apple, which is extremely tormenting. So the question is, is there any way for us to accurately grasp Apple's review guidelines, so as to improve the pass rate of the review? The answer is yes. Tencent's pre-review team has explored the following two aspects. After nearly a year of implementation and data monitoring, the monthly pass rate of iOS review has increased from 35% in the past to 85%+ :

1. Analyze past cases of review rejections, and combine the terms of the "Apple App Store Review Guidelines" to organize them into executable review items;

2. Extract the method that can be automated to improve the efficiency of review;

Next, we will take you into the Apple review and reveal the truth about the iOS review. This article serves as an introduction to briefly introduce the relevant content of iOS auditing in three levels:

1. Auditing Equipment for iOS Auditing Exploration

2. Latitude Analysis of iOS Review Rejection

3. iOS pre-review acceptance dimension of Tencent pre-review team


1. Auditing Equipment for iOS Auditing Exploration

Since Apple's products were launched in 2007, they have gradually introduced new ones, and there are already many product hardware versions and system versions in the external market. With so many system versions, how do we ensure the quality of the review version has been confusing the testing and product teams.

Often Apple suddenly releases a new system, how do we deal with these risks?

【Classic Case】

At the end of 2014, due to the release of the new iOS version 8.1.1 system, some underlying system bugs were repaired, which resulted in unsuccessful payment of game products and failed webview login.

【Key Measures】

1. The same acceptance version as Apple Watch:

It is speculated that the Apple audit team will also follow the principle of equipment acceptance selection: acceptance of the latest two system versions and two hardware versions. Ensure that the game can run smoothly on the two system versions and hardware configurations with the highest market share.

Therefore, the Tencent pre-review team will purchase equipment according to the rhythm of the current version release, upgrade the system, and ensure that the above system versions and hardware versions can be covered. List and models of currently accepted machines:

 

2. Follow the beta version:

Before the new version goes online, Apple will release a beta version for a small amount of testing. At this time, it is necessary to follow up the beta version, so that problems can be found in advance to avoid surprises caused by sudden version releases.

2. Latitude Analysis of iOS Review Rejection

In order to explore the rejection situation at a deeper level, we have made a detailed analysis, through the statistics of the review data in previous years, let's see what are the reasons for the rejection!

3. Dimensions of pre-qualification business acceptance

According to the statistical data in 2014, combined with the "Apple App Store Review Guidelines", the pre-review team divides the pre-review work into three major modules: client resource inspection, application content inspection and review resource inspection:

Client Resource Check

Ensure that the Plist and other configurations in the client meet Apple's requirements, and there is no redundant Key value enable;

App Content Check

Review the content of the application to confirm that there is no pornography, vulgarity, violence, guns, etc.; and screen the announcement text to see that there are no words prohibited by Apple; the application does not contain cdkey exchange, friend invitation and showing off, etc. Apple's latest prohibition Content;

Submission resource check

Make sure that the game screenshots and videos submitted meet Apple’s requirements, and there is no sensitive information in the screenshots and videos; at the same time, the video screenshots, etc. meet Apple’s technical requirements, and the frame rate and resolution meet the standards.

This article first introduces the relevant content of Apple's review, and then based on the dimensions of business acceptance, it will introduce the main points of acceptance, the pitfalls encountered, and those rejection cases that make people uncomfortable.

Let's start with the client check

The main purpose of client inspection is to ensure that the client meets Apple’s developer specifications and other updated requirements through client configuration inspection, including storage system, configuration files, network connection (VPN), icon inspection, private API inspection, and pre-trial The review will cover each test point of these parts.

1. Storage system inspection

Apple officially has strict regulations on user data storage. In the past, many rejection cases were related to storage. Therefore, we need to master the relevant content of Apple's official data storage guidelines:

【Classic Case】

[Case 1] The xx0 version of "Project A" was rejected because 22.17MB of data (usually no more than 1MB) was stored in the user's iCloud after the App was launched, which did not comply with the iOS data storage guidelines.

Solution: Because the cumulative file size of the incremental update is too large, it has been repaired and passed the review.

[Case 2]  The xx5 version of "Project B" was rejected because it did not follow the iOS data storage guidelines. Resource files were stored in the application's documents directory. Apple does not allow non-user generated files to be placed in this directory, because will be synced to iCloud.

Solution: Modify the local resource files that need to exist under library/cache.

 2. Check the configuration file (Info.plist)

Info.plist is a structured text file, commonly referred to as "property list". iOS apps use Info.plist file to store meta information, which is used to determine the icon displayed by the bundle. The current app supports opening Document types, service declarations, and more. Regarding this part of the inspection, we usually focus on the following aspects:

【Classic Case】

The x.x1 version of "Project C" was rejected due to the Info.plist setting problem, that is, the file sharing function that the application does not need, but the UIFileSharingEnabled key in the Info.plist is set to true.

Workaround: Info.plist UIFileSharingEnabled key set to false.

3. Network connection (VPN)

Most App review servers are deployed in China, but Apple’s iOS review team is in the United States. When they conduct reviews, they use the US network. Such intercontinental network connections will inevitably have large delays, jitter, For network problems such as packet loss, in order to verify the response of the App background server based on this scenario in advance, the pre-review team used the US VPN method to simulate the access network environment of the Apple review team (the application accesses the background server from the US VPN network).

【Classic Case】

"Project D" was rejected because the US IP could not log in. Through the US VPN connection, the development was located and repaired, and then resubmitted and passed the audit.

4. Icon check

Apple officially has clear requirements for the icons of iPhone, iPad, iPod and other applications: the ipa package must contain 180x180, 120x120, 76x76, 152x152 size icons in PNG format (see the table below for details), and icon content of different sizes Be consistent.

Regarding the inspection of the App icon, the Tencent pre-review team uses an automated method to automatically decompress the ipa package, and checks whether the icon icon exists and meets the requirements one by one. For the ipa package that does not meet the requirements, an alarm prompt is given:

【Classic Case】

The xxx version of "Project E" was pre-reviewed, and the relevant icon image resources were not provided. If this version is formally submitted for review and waits for Apple's review results, it will only be rejected.

5. Private API inspection

Private API (Private API) refers to the API placed in the PrivateFrameworks framework. It is not uncommon to be rejected in the review due to calling the private API. The reason for 256 apps, including Your Sister, is to call a private API. Obviously, Apple explicitly does not allow apps to use such APIs.

Although the non-public API (Non-public API) is placed in the Frameworks framework, there are no usage instructions, code introduction, etc. in Apple's official documents. According to Apple, the unpublished API is not mature enough and may change. It will become a public API after it is fully formed. However, there is no commitment to it at present, that is, it may become invalid after the system version is upgraded. For non-public APIs, Article 2.5 of Apple's iOS Review Guidelines is also clear that if the app is used, it will be rejected (2.5 Apps that use non-public APIs will be rejected).

Regarding the inspection of private API, it is realized by automatic tool scanning. The implementation principle is as follows:

① Get the undisclosed library: Based on the iOS SDK, dump the entire library, subtract the private library and the public library from the whole library, and get the unpublished library (non-public API);

② Obtain the list of methods and members of the header file: use tools such as Otool to decompile and analyze the executable file of ipa, and obtain the list of methods and members in the header file;

③ Matching with undisclosed libraries and private libraries: Match the methods and members in the list with private libraries and undisclosed libraries respectively. If there is no matching item, the scan will pass. If there is a matching item, the scan will fail. Pass (give warning and API name).

Four. Summary

1. In fact, the inspection of the storage system is a set of specifications, following the same series of concepts, such as the reasonable use of the user's local storage space and Apple iCloud server storage, saving space;

2. The Info.plist file check is actually the key value check of the xml file, and the value check relationship is parallel. Through the inspection of storage files and plist use cases, the situation of rejection due to such reasons is basically avoided;

3. Private API inspection is realized through automated tool scanning.

This article has been authorized by the author and is reproduced from the WeChat official account of " Tencent Lecture Hall ". In the next issue, we will introduce "application content, resource review method", exciting content, don't miss it!

 


[Tencent WeTest iOS pre-review tool]

In order to improve the pass rate of IEG Apple's review, Tencent specially set up an Apple review and testing team to create a product called iOS pre-review tool. After one and a half years of internal operations, the iOS approval rate of Tencent's internal applications has increased from an average of 35% to 90%+.

Now share the review experience of Tencent's internal products with you in the form of online tools. It can be used online on the WeTest Tencent Quality Open Platform. Experience address: http://wetest.qq.com/ios

The iOS pre-review tool conducts pre-review services in four steps

[One-click scanning] You only need to provide the ipa package, review pictures, review videos, and application descriptions, and you can get a complete test report within 4 hours, and provide solutions while locating problems, helping you pass the review successfully.

[Case Sharing] Gather the common reasons for iOS audit failures, and provide you with rich cases for reference.

【Expert Service】 Tencent's expert team will analyze various difficult and miscellaneous diseases for you and propose optimal solutions.

【ASO Optimization】 Professional optimization of keyword search results in the AppStore, making the product one step closer to users. I hope that apps/mobile games can pass the review happily under the guarantee of pre-trial acceptance, and make money happily.

Guess you like

Origin blog.csdn.net/lmrylll/article/details/130506618