Publishing an Android App to Huawei AppGallery
AppGallery is the third-largest app store in the world. After 2020, Huawei devices ship without Google Mobile Services, and users can only install apps through AppGallery or third-party sources. For Europe, Middle East, and Asian markets, ignoring this channel means cutting off significant audience.
Account Registration and Verification
A Huawei Developer account is created at developer.huawei.com. Companies require verification: upload registration documents and provide a bank card or account details. Verification takes 1–3 business days. Without it, only view mode is available — publishing is blocked.
After verification, create a project in AppGallery Connect, add an app, specify Package Name. Package Name must match the APK. You cannot change it after the first upload.
Compatibility with HMS instead of GMS
The main technical task: an app written for Google Mobile Services (Firebase, Google Maps, Google Sign-In) doesn't work on devices without GMS. Huawei offers HMS Core as a replacement:
| GMS Service | HMS Equivalent |
|---|---|
| Firebase Cloud Messaging | HMS Push Kit |
| Google Maps SDK | HMS Map Kit |
| Google Sign-In | Huawei ID |
| Firebase Crashlytics | HMS App Debugger / Crash |
| Google Pay | Huawei Pay |
For apps without HMS integration, you can publish the APK "as is," but push notifications and maps won't work. This may be acceptable for simple utilities.
For full support: either duplicate logic with GMS/HMS availability checks, or use adapter libraries:
// Check GMS/HMS availability before initializing push
fun checkServiceAvailability(context: Context): ServiceType {
val googleAvailability = GoogleApiAvailability.getInstance()
val resultGms = googleAvailability.isGooglePlayServicesAvailable(context)
val huaweiAvailability = HuaweiApiAvailability.getInstance()
val resultHms = huaweiAvailability.isHuaweiMobileServicesAvailable(context)
return when {
resultGms == ConnectionResult.SUCCESS -> ServiceType.GMS
resultHms == com.huawei.hms.api.ConnectionResult.SUCCESS -> ServiceType.HMS
else -> ServiceType.NONE
}
}
APK Preparation and AppGallery Requirements
AppGallery accepts both APK and AAB. Build requirements:
- targetSdkVersion: minimum Android 9 (API 28) for new apps
-
64-bit: mandatory
arm64-v8asupport - Signing: APK must be signed with release keystore. Huawei doesn't offer Play App Signing equivalent — key stays with you
When uploading APK, Huawei runs automatic malware checks and policy violation detection. References to GMS API (com.google.android.gms) don't automatically cause rejection, but won't work on non-GMS devices.
Listing and Review
Listing is filled in AppGallery Connect: title (up to 55 characters), description (up to 8000), screenshots (2 to 8 for phone), icon 216×216 px.
Review usually takes 1–3 business days. Common delay reasons:
- Functionality requires additional documentation (financial apps, medical, VPN)
- Links to third-party stores or payment services outside HMS IAP
- Inaccessible sections during testing (requires test account in Notes)
Monetization via HMS IAP
If the app has purchases, integrate HMS In-App Purchases Kit for Huawei devices. Google Play Billing is unavailable on these devices. HMS IAP API is structurally similar to Play Billing but connects separately:
// Initialize HMS IAP client
val iapClient = Iap.getIapClient(activity)
val task = iapClient.isEnvReady()
task.addOnSuccessListener { /* HMS IAP available */ }
.addOnFailureListener { /* Fallback to GMS */ }
Process
Register and verify developer account, create app in AppGallery Connect.
Assess compatibility: analyze GMS dependencies, determine HMS integration scope.
Prepare APK/AAB, fill listing.
Upload, pass review, publish.
Timeline Estimates
Publishing an app without HMS integration — 1–2 days (including review). Adding HMS Push Kit and Map Kit — additional 3–7 days of development depending on services used.







