Langsung ke konten utama

Cara Publish Aplikasi Capacitor di Huawei AppGallery

Cara publish aplikasi Capacitor di Huawei AppGallery: registrasi developer, audit Google Play services, HMS fallback, signing APK, aset listing, dan tips review.

Aplikasi Capacitor dipublikasikan di Huawei AppGallery

Anda bisa publish aplikasi Capacitor di Huawei AppGallery dengan Android build yang sama seperti yang Anda kirim ke Google Play. Daftarkan akun HUAWEI Developers gratis, cek plugin mana yang bergantung pada Google Play services (tidak tersedia di HP Huawei yang dirilis sejak akhir 2019), sembunyikan atau ganti fitur tersebut, lalu upload APK yang sudah di-sign ke AppGallery Connect beserta listing dan tunggu proses review. Panduan ini membahas setiap langkahnya, termasuk pengecekan native sederhana yang bisa Anda masukkan ke aplikasi untuk mendeteksi Google Play services tanpa dependensi tambahan.

Siapa yang sebaiknya rilis di AppGallery

AppGallery adalah store bawaan di ponsel dan tablet Huawei. Ini penting jika di antara pengguna Anda ada:

  • Pengguna di Eropa, Timur Tengah, Afrika, Amerika Latin, dan Asia Tenggara yang memakai perangkat Huawei rilisan setelah pembatasan perdagangan AS tahun 2019, yang dikirim tanpa layanan Google Play dan tanpa Play Store.
  • Pelanggan enterprise atau pemerintah yang sudah menstandarkan hardware Huawei.

Catatan tentang HarmonyOS: Ponsel Huawei yang dijual di luar Tiongkok daratan menjalankan EMUI, yang berbasis Android dan bisa menginstal APK. Perangkat di Tiongkok daratan yang menjalankan HarmonyOS NEXT (HarmonyOS 5 dan seterusnya) hanya menjalankan aplikasi native HarmonyOS, jadi APK Android tidak bisa dipasang di sana. Panduan ini membahas AppGallery yang berbasis Android.

Langkah 1: Audit dependensi layanan Google Play

Capacitor sendiri hanya bergantung pada AndroidX dan library Android-nya sendiri. Risikonya datang dari plugin yang ikut membawa library Google. Periksa dependensi Anda:

cd android
./gradlew :app:dependencies --configuration releaseRuntimeClasspath \
  | grep -E "com.google.android.gms|com.google.firebase|com.google.android.play|billingclient" \
  | sort -u

Lalu kelompokkan menjadi “berjalan tanpa Google Play services” dan “butuh Google Play services”.

Dependensi Di Huawei tanpa GMS Plugin umum
Firebase Cloud Messaging Tidak berfungsi @capacitor/push-notifications, plugin Firebase Messaging
Google Maps SDK Tidak berfungsi @capacitor/google-maps
Google Sign-In (play-services-auth, Credential Manager Google ID) Tidak berfungsi provider Google @capgo/capacitor-social-login
Google Play Billing Tidak berfungsi @capgo/capacitor-native-purchases, RevenueCat di Android
Play In-App Review Tidak berfungsi @capgo/capacitor-in-app-review
Mainkan In-App Updates Tidak berfungsi Play update helpers di @capgo/capacitor-updater
Play Integrity Tidak berfungsi Plugin app attestation di Android
Lokasi gabungan ("play-services-location) Tergantung plugin; sebagian fallback ke LocationManager Android @capacitor/geolocation, plugin background geolocation
play-services-tasks, play-services-basement saja Aman (library biasa) Banyak plugin
Firestore, Realtime Database, Storage, Remote Config, Crashlytics, Auth email/password Kerja Plugin Firebase
Live updates Capgo Kerja @capgo/capacitor-updater
Login Apple dan Facebook Kerja @capgo/capacitor-social-login Provider Apple / Facebook

“Tidak berfungsi” biasanya berarti pemanggilan melempar error atau tidak pernah selesai. Jarang membuat seluruh aplikasi crash, tetapi reviewer menguji di perangkat Huawei, dan tombol yang tidak berfungsi atau layar kosong adalah alasan penolakan yang umum.

Langkah 2: Deteksi Google Play services saat runtime

Anda bisa mengecek Google Play services tanpa menambah dependensi Google dengan menanyakan package manager Android apakah com.google.android.gms sudah terinstal. Tambahkan plugin lokal kecil ke proyek Android Capacitor Anda.

android/app/src/main/java/com/example/app/ServicesCheckPlugin.java:

package com.example.app;

import android.content.pm.PackageManager;
import com.getcapacitor.JSObject;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;
import com.getcapacitor.annotation.CapacitorPlugin;

@CapacitorPlugin(name = "ServicesCheck")
public class ServicesCheckPlugin extends Plugin {

    private boolean isInstalled(String packageName) {
        try {
            getContext().getPackageManager().getPackageInfo(packageName, 0);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }

    @PluginMethod
    public void getStatus(PluginCall call) {
        JSObject ret = new JSObject();
        ret.put("gms", isInstalled("com.google.android.gms"));
        ret.put("hms", isInstalled("com.huawei.hwid"));
        call.resolve(ret);
    }
}

Daftarkan di MainActivity.java sebelum super.onCreate:

package com.example.app;

import android.os.Bundle;
import com.getcapacitor.BridgeActivity;

public class MainActivity extends BridgeActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        registerPlugin(ServicesCheckPlugin.class);
        super.onCreate(savedInstanceState);
    }
}

Sejak Android 11, aplikasi hanya bisa melihat paket lain yang dideklarasikannya. Tambahkan <queries> blok ke android/app/src/main/AndroidManifest.xml, di dalam <manifest>:

<queries>
    <package android:name="com.google.android.gms" />
    <package android:name="com.huawei.hwid" />
</queries>

Panggil dari TypeScript:

import { Capacitor, registerPlugin } from '@capacitor/core';

interface ServicesCheckPlugin {
  getStatus(): Promise<{ gms: boolean; hms: boolean }>;
}

const ServicesCheck = registerPlugin<ServicesCheckPlugin>('ServicesCheck');

export async function getMobileServices() {
  if (Capacitor.getPlatform() !== 'android') {
    return { gms: true, hms: false };
  }
  return ServicesCheck.getStatus();
}

Keberadaan paket adalah indikator yang cukup baik. Ini tidak memberi tahu apakah Google Play services sudah diperbarui atau aktif; jika Anda juga membutuhkannya, tambahkan com.google.android.gms:play-services-base dan gunakan GoogleApiAvailability.isGooglePlayServicesAvailable(), yang tetap berfungsi di perangkat tanpa GMS.

Langkah 3: Degradasi secara graceful

Gunakan hasilnya untuk mengaktifkan atau menonaktifkan fitur:

import { PushNotifications } from '@capacitor/push-notifications';
import { getMobileServices } from './services';

export const features = {
  push: true,
  googleSignIn: true,
  playBilling: true,
  inAppReview: true,
};

export async function initFeatures() {
  const { gms } = await getMobileServices();

  features.push = gms;
  features.googleSignIn = gms;
  features.playBilling = gms;
  features.inAppReview = gms;

  if (features.push) {
    const perm = await PushNotifications.requestPermissions();
    if (perm.receive === 'granted') {
      await PushNotifications.register();
    }
  }
}

Fallback praktis:

  • Masuk: sembunyikan tombol Google dan tampilkan login email, Apple, atau Facebook sebagai gantinya. Dengan @capgo/capacitor-social-login Anda hanya menginisialisasi provider yang ditampilkan.
  • Pembayaran: Google Play Billing tidak tersedia. AppGallery memiliki Huawei IAP sendiri. Jika pembelian digital adalah inti aplikasi Anda, integrasikan Huawei IAP atau rilis build AppGallery tanpa pembelian dan nyatakan hal tersebut di listing.
  • Push: gunakan Huawei Push Kit untuk perangkat HMS. Tidak ada plugin Capacitor resmi; Huawei menerbitkan plugin Cordova di bawah @hmscore/* yang berjalan di Capacitor, atau Anda bisa menulis plugin native kecil di sekitar SDK Push Kit.
  • Peta: gunakan peta web (Leaflet, MapLibre GL JS) di dalam WebView, yang berfungsi di semua perangkat, atau Huawei Map Kit.
  • Beri rating aplikasi: di Huawei, tautkan ke halaman AppGallery Anda alih-alih memanggil API ulasan Play.
  • Tautan toko: tombol “Perbarui aplikasi” harus membuka AppGallery (appmarket://details?id=com.example.app) di perangkat Huawei, bukan Play Store.

Uji di perangkat Huawei asli atau layanan cloud debugging Huawei. Emulator dengan Google API akan menyembunyikan semua masalah ini.

Langkah 4: Daftarkan akun HUAWEI Developers

  1. Buat HUAWEI ID di developer.huawei.com.
  2. Selesai verifikasi identitas sebagai individu atau perusahaan. Individu biasanya menyertakan dokumen identitas dan detail kartu bank; perusahaan menyertakan dokumen pendaftaran bisnis. Tinjauan biasanya memakan waktu satu hingga dua hari kerja.
  3. Pilih jenis akun dan negara dengan cermat. Huawei tidak mengizinkan konversi akun individu menjadi akun perusahaan, dan negara atau wilayah yang terverifikasi tidak dapat diubah kemudian.

Pendaftaran gratis.

Langkah 5: Buat aplikasi di AppGallery Connect

  1. Buka AppGallery Connect &gt; Aplikasi saya &gt; Aplikasi baru.
  2. Platform: Android. Perangkat: Mobile phone (termasuk tablet).
  3. Nama aplikasi, bahasa default, dan package name. Package name harus cocok dengan appId di capacitor.config.ts dan tidak bisa diubah setelah upload pertama.
  4. Pilih kategori aplikasi.

Langkah 6: Build dan sign paket rilis

AppGallery menerima APK dan AAB. Jalur APK lebih simpel: Anda sign sendiri dengan key Anda, dan Huawei tidak perlu menyimpan signing key Anda.

bun run build
bunx cap sync android
cd android
./gradlew assembleRelease

Konfigurasi signing di android/app/build.gradle (muat password dari environment variable atau keystore.properties, jangan pernah di-commit):

android {
    signingConfigs {
        release {
            storeFile file(System.getenv("ANDROID_KEYSTORE_PATH") ?: "upload-keystore.jks")
            storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD")
            keyAlias System.getenv("ANDROID_KEY_ALIAS")
            keyPassword System.getenv("ANDROID_KEY_PASSWORD")
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

APK ada di android/app/build/outputs/apk/release/. Jika Anda membutuhkan keystore, Generator keystore Android membuatnya. Simpan baik-baik: setiap update AppGallery ke depannya harus di-sign dengan key yang sama.

Jika Anda upload AAB, AppGallery mewajibkan layanan App Signing mereka, artinya Huawei yang membuat dan memegang signing key akhir, model yang sama dengan Play App Signing.

Beberapa hal yang perlu dicek sebelum upload:

  • versionCode harus bertambah setiap kali upload.
  • Nama aplikasi di APK harus sama dengan nama listing di AppGallery.
  • Jika Anda mendistribusikan di luar China daratan, sediakan bahasa Inggris (US) sebagai bahasa di listing.
  • Mulai 30 September 2026, verifikasi developer Android berlaku untuk aplikasi yang diinstal di perangkat bersertifikat di Brasil, Indonesia, Singapura, dan Thailand. Perangkat Huawei tanpa layanan Google tidak tersertifikasi Google, tapi jika package yang sama juga diinstal dari luar Google Play di perangkat bersertifikat, daftarkan nama package tersebut di Android Developer Console.

Langkah 7: Siapkan listing

Listing AppGallery punya spesifikasi sendiri, berbeda dari Apple dan Google:

Kolom Persyaratan
Ikon 216 x 216 PNG (512 x 512 juga diterima), tanpa sudut membulat yang Anda tambahkan sendiri
Screenshot 3 sampai 8, 450 x 800 atau 800 x 450 px (atau lebih besar secara proporsional), orientasi sama
Deskripsi singkat Maksimal 80 karakter
Pendahuluan Maksimal 8.000 karakter
URL kebijakan privasi Wajib jika aplikasi mengumpulkan data pribadi
Rating usia Kuesioner di AppGallery Connect
Akun uji coba Wajib jika aplikasi memiliki fitur login
Negara / wilayah Pilih negara distribusi secara eksplisit

Jangan pakai ulang screenshot yang menampilkan logo Google Play, frame perangkat Android bermerek produsen lain, atau badge “Get it on Google Play”. Huawei menolak listing yang merujuk ke store lain. Untuk aset lainnya, pakai lagi yang sudah Anda buat untuk store lain; kami Panduan listing App Store dan Google Play menutupinya.

Langkah 8: Upload, submit, dan review

  1. Di Informasi versi &gt; Draft, upload APK di bawah Versi perangkat lunak.
  2. Isi detail listing, rating, privasi, dan negara.
  3. Atur waktu rilis (segera setelah disetujui atau terjadwal).
  4. Kirim untuk ditinjau.

Peninjauan biasanya memakan waktu beberapa hari kerja. Penolakan dikirim via email dengan referensi pedoman. Yang umum untuk aplikasi Capacitor:

  • Fitur yang tidak berfungsi tanpa layanan Google Play (tombol login yang tidak berfungsi, layar peta kosong).
  • Aplikasi duplikat: aplikasi dengan nama paket yang sama sudah ada di AppGallery dari pengembang lain, atau Huawei sebelumnya menyalin aplikasi Anda dari Google Play. Hubungi dukungan pengembang Huawei dengan bukti kepemilikan.
  • Referensi toko lain di screenshot atau teks.
  • Bahasa Inggris tidak ada untuk distribusi internasional.
  • Kebijakan privasi hilang atau tidak dapat diakses dari dalam aplikasi.

AppGallery Connect juga memiliki Publishing API, sehingga Anda dapat mengotomatiskan upload dari CI setelah versi pertama tayang.

Langkah 9: Jaga update tetap cepat

Setiap perubahan native harus melewati review Huawei lagi, sama seperti store lainnya. Untuk perubahan JavaScript, HTML, dan CSS, Live updates Capgo kirim bundle baru langsung ke aplikasi yang terpasang di perangkat Huawei, Google, dan Apple dengan satu upload, karena updater mengambil bundle dari endpoint Capgo Anda dan tidak menggunakan Google Play services. Gunakan channel khusus jika build Huawei Anda memiliki fitur berbeda:

bunx @capgo/cli@latest bundle upload --channel huawei

Atur channel default untuk build Huawei saat proses build, atau tetapkan perangkat ke channel dari aplikasi Anda. The dokumentasi updater Capgo menjelaskan channel dan konfigurasi.

Checklist

  • Audit dependensi selesai, fitur khusus GMS tercantum
  • Pemeriksaan layanan runtime ditambahkan dan diuji di perangkat Huawei asli
  • Fitur khusus Google disembunyikan atau diganti (push, sign-in, billing, maps, review)
  • Akun HUAWEI Developers terverifikasi
  • Aplikasi dibuat dengan nama paket yang sama dengan capacitor.config.ts
  • Release APK ditandatangani dengan keystore yang sudah di-backup, versionCode dinaikkan
  • Ikon, 3 hingga 8 screenshot, pengantar singkat dan lengkap, kebijakan privasi
  • Tidak ada referensi Google Play di aset listing
  • Akun uji untuk reviewer jika diperlukan
  • Terkirim, email review dipantau

Jika Anda juga menyiapkan Google Play, baca cara membuat akun developer Apple dan Google Play untuk aturan 12 penguji yang hanya berlaku di sana.

Live updates untuk aplikasi Capacitor

Saat bug web-layer sudah live, kirim perbaikannya lewat Capgo alih-alih menunggu berhari-hari untuk persetujuan app store. Pengguna mendapat update di background, sementara perubahan native tetap mengikuti jalur review normal.

Terbaru dari Blog kami

Capgo memberikan insight terbaik yang Anda butuhkan untuk membuat aplikasi mobile yang benar-benar profesional.