
In September 2023, China's Ministry of Industry and Information Technology (MIIT, 工信部) issued a notice requiring every app that provides internet information services within China to complete filing. The transition period for existing apps ended at the end of March 2024, and now all the major Android app stores (Huawei, Xiaomi, OPPO, vivo and Tencent MyApp/应用宝) require a filing number before an app can be published.
For overseas developers: "app filing" (APP备案) is the app equivalent of the ICP filing that websites hosted in mainland China need. In China, Android apps are distributed mainly through these phone-maker and platform stores rather than Google Play.
No filing number = no store listing = users can't download your app.
And it's not a mere formality. Android app filing involves three key items, the package name, public key and signature MD5, and getting any one wrong fails review. This article covers the whole process and its pitfalls in one go.
Needs filing:
Doesn't need filing:
Grey areas: if your app makes any network requests at all (even update checks or analytics events), it doesn't count as an offline app and needs filing.
These are the core technical details for Android app filing, and many people get stuck here. First understand what they are and how to get them.
| Item | What it is | Where to find it | Format |
|---|---|---|---|
| Package name | The app's unique identifier, e.g. com.example.myapp | applicationId in build.gradle, or the package attribute in AndroidManifest.xml | Reverse domain format |
| Public key | The public key of the signing certificate | Open the APK in Jadx-GUI and look at the Modulus under APK signature | Decimal or hexadecimal |
| Signature MD5 | The digital fingerprint of the signing certificate | keytool -list -v -keystore xxx.keystore, or the MD5 under APK signature in Jadx-GUI | Hexadecimal, colons removed |
# View signing info, including MD5 and SHA1
keytool -list -v -keystore your_keystore.jks
# Example output:
# MD5: A1:B2:C3:D4:E5:F6:...
# SHA1: ...
# SHA256: ...
# Public key (Modulus): a very long number
If you don't want to install anything, you can use an online APK parsing tool (such as appuploader): upload the APK and get the package name, public key, signature and more in one click. Good for non-developers.
⚠️ Important: remove the colons from the signature MD5 and keep only the hex characters. For example, if the MD5 shows as A1:B2:C3:D4, enter A1B2C3D4 when filing.
A company entity is preferred: filing entity = software copyright holder = developer account company entity. All three must match.
Individual developers can file with an ID card, but some app stores restrict individual developers (for example, finance apps are basically not allowed from individuals).
| Material | Corporate developers | Individual developers |
|---|---|---|
| Entity credentials | Scan of business license (valid original) | Front and back of ID card + photo holding ID card |
| Legal representative / responsible person | ID card + phone number + email | Same as left |
| Server information | Public IP / domain, under the access provider's account | Same as left |
| App information | Name, icon, package name, public key, signature MD5 | Same as left |
| Privacy policy | Privacy policy URL (must be accessible) | Same as left |
| Software copyright | Computer software copyright registration certificate (软著) | Required by some stores |
| Special industries | Prior approval documents (news / medical / education, etc.) | Same as left |
Note: the server must be provided by the filing access provider. If you use Alibaba Cloud servers, file through Alibaba Cloud; if you use Tencent Cloud, file through Tencent Cloud.
For overseas developers: in China, filing is submitted through your cloud or hosting provider (the "access provider", 接入商), which forwards it to the authorities.
Main access providers and portals:
| Provider | Filing portal | Notes |
|---|---|---|
| Alibaba Cloud | beian.aliyun.com | Most complete process, most tutorials |
| Tencent Cloud | cloud.tencent.com/product/ba | 1–2 day initial review, efficient |
| Huawei Cloud | support.huaweicloud.com | First choice for the HarmonyOS ecosystem |
| China Telecom Cloud (Tianyi Cloud) | ctyun.cn | Good on China Telecom networks |
| China Mobile Cloud | ecloud.10086.cn | Good on China Mobile networks |
| China Unicom Cloud | cucloud.cn | Good on China Unicom networks |
Rule of thumb: whichever cloud your server is on, use that provider as your access provider. This is a hard requirement.
After signing in to the provider's filing system, fill in each step:
1. Entity information
Companies enter business license details; individuals enter ID card details. Watch out for easily confused characters in ID numbers:
A mistake fails validation immediately; it's the most common basic error.
2. Basic app information
3. Platform information (key step)
Select the "Android" platform and enter:
If your app also has an iOS version, select iOS too and enter the Bundle ID, public key and signature SHA-1.
If your app also has a HarmonyOS version, select the "HarmonyOS" platform and enter the HarmonyOS package name (for details see my HarmonyOS app filing guide).
4. App responsible person
Enter the responsible person's name, ID number, phone number, emergency phone number and email. This person will need to take part in face verification.
Within 1–2 business days after submission, the provider will verify by phone. Note:
Some providers require the legal representative or app responsible person to complete facial recognition. Follow the system's instructions and verify by scanning a code with WeChat or through an app.
After the initial review passes and the filing is submitted to the provincial authority, the filing phone number will receive an MIIT verification code by SMS within 24 hours.
Sign in to the MIIT filing management system to complete verification. Missing the deadline may lead to rejection, so verify as soon as you get the SMS.
The provincial communications administration reviews the filing within a statutory limit of 20 business days; in practice it usually takes 15–20 days. Once approved, you'll receive your filing number by email and phone.
Example filing number format: 京ICP备2024XXXXXX号-1A
After getting your filing number, you still need to enter the filing information in each Android store's developer console. Using Huawei AppGallery as an example:
Other stores (Xiaomi, OPPO, vivo, Tencent MyApp) work similarly: fill in the "Filing information" field on the submission page.
Pitfall 1: Filing entity doesn't match the developer account entity
This is the top reason for rejection. Remember this formula:
Filing entity = software copyright holder = developer account company entity
All three must match; any discrepancy will get you sent back.
Pitfall 2: Entering SHA1 or SHA256 instead of the signature MD5
Android takes MD5, iOS takes SHA-1, HarmonyOS takes the SHA256 fingerprint. Don't mix them up. And remove the colons from the MD5, keeping only hex characters.
Pitfall 3: Changing the signing certificate after filing
Once the signing certificate changes, the new MD5 and public key no longer match the filing, and you need to file a change (15–30 days). So keep your signing certificate safe; losing it and re-signing is costly.
Pitfall 4: Assuming the app doesn't need filing because the domain already has ICP filing
Website filing and app filing are two separate systems with different number formats. Even if your domain has ICP filing, the app must be filed separately.
Pitfall 5: Privacy policy URL not accessible
Filing requires a privacy policy URL that must be accessible. A 404 page will get your filing sent back. Use a cloud hosting service for reliable availability.
Pitfall 6: Not updating filing information after changes
After changing the app name, features or entity information, you need to file a change within 30 days. Package name changes in particular must be filed with your access provider, or filing validation in each store will fail.
| Stage | Alibaba Cloud | Tencent Cloud | Huawei Cloud |
|---|---|---|---|
| Provider initial review | 1 business day | 1–2 business days | 1–2 business days |
| SMS verification | Within 24 hours | Within 24 hours | Within 24 hours |
| Provincial final review | 7–20 business days | 15–20 business days | 15–20 business days |
| Overall | About 8–22 business days | About 17–22 business days | About 17–22 business days |
Review speed varies by province; Beijing, Shanghai, Guangzhou and Shenzhen are usually faster, while remote provinces may be slower.
| Task | Frequency | Notes |
|---|---|---|
| Display the filing number | Immediately | Show it on the app's "Settings – About us" page, linking to the MIIT lookup system |
| Annual verification | Yearly | Complete filing information verification on time to keep it accurate and valid |
| Filing changes | Within 30 days of a change | Submit changes to app name, package name, entity, etc. promptly |
| Public display of the filing number | Immediately | Also show the filing number at the bottom of your app's website |
Android app filing is essentially "getting your app an ID card". The process isn't complicated, but preparing materials and entering the three key items leave no room for carelessness.
A few key suggestions:
Filing is your ticket to the store, not an option. The sooner you file, the sooner you can relax; don't wait until a rejection to discover you're not filed.
Sources: Huawei app filing guide, Alibaba Cloud app filing process, Tencent Cloud app filing guide, China Telecom Cloud app characteristic information, MIIT app filing notice