Ghid

Publici un joc HTML5 pe Google Play cu Capacitor, pas cu pas

De la dosarul jocului la un pachet de aplicație semnat, formularele din Play Console, regula de 12 testeri pentru conturile noi și problemele webview pe care le-am întâlnit în propriile aplicații.

Grafica principală din Velvet Pool, un șablon de biliard 8-ball pe care Polar Games l-a împachetat și ca aplicație Android.

Ca să publici un joc HTML5 pe Google Play, împachetezi dosarul jocului într-un proiect Android nativ cu Capacitor, construiești în Android Studio un Android App Bundle semnat, creezi aplicația în Play Console, răspunzi la formularele de conținut și încarci pachetul pe o pistă de test înainte de producție. Dacă ai un cont de dezvoltator personal creat după 13 noiembrie 2023, Google cere și un test închis cu cel puțin 12 testeri timp de 14 zile, înainte să poți cere acces la producție.

Am făcut asta cu propriile noastre jocuri. În octombrie 2026 am împachetat Ricopop și Velvet Pool cu Capacitor și le-am trimis pe amândouă la revizuirea de producție Google Play, la fel și jocul nostru de acțiune Little Ninja Dash. Ghidul amestecă ce spun paginile oficiale Capacitor, Android și Play Console, citite pe 30 octombrie 2026, cu ce consemnează notele noastre de lansare. Regulile și cerințele se schimbă, deci verifică fiecare pagină legată înainte să trimiți.

Înainte să publici un joc HTML5 pe Google Play

  • Un cont de dezvoltator Google Play. Google percepe o taxă unică de înregistrare de 25 USD și cere fiecărui dezvoltator să-și verifice identitatea. Conturile personale trebuie să verifice și accesul la un dispozitiv Android cu aplicația mobilă Play Console, înainte de publicare.
  • Node.js și Android Studio. Documentația Capacitor pentru Android spune că aplicațiile Capacitor Android se configurează și se gestionează în Android Studio.
  • Un joc care funcționează offline din propriul dosar, cu un index.html în rădăcină.
  • O licență pentru joc. La șabloanele noastre, o licență acoperă un singur produs final, iar acel joc îl poți publica oriunde vrei, inclusiv pe Google Play și App Store. Nu poți revinde șablonul în sine. Întreabă-ne înainte să adaugi un preț sau achiziții în aplicație, pentru că termenii noștri vorbesc despre jucători care accesează produsul gratuit sau prin publicitate.

Edițiile noastre de șabloane sunt jocuri pentru browser. Fiecare pagină de ediție arată că build-urile de aplicație nativă nu sunt incluse, deci pașii de mai jos sunt muncă pe care o faci tu sau muncă pe care o comanzi de la noi, pe ofertă.

Vezi Velvet Pool, șablonul de biliard pe care l-am împachetat și pentru Android

Pasul 1: împachetează dosarul jocului cu Capacitor

Capacitor are nevoie de un package.json, de un dosar cu fișierele web compilate și de un index.html în rădăcina acelui dosar. Pagina lui de pornire avertizează că index.html trebuie să aibă un tag head, altfel plugin-urile nu vor funcționa. Un șablon HTML5 descărcat are de obicei dosarul deja: la noi este game/.

  1. Într-un dosar nou de proiect, rulează npm i @capacitor/core și npm i -D @capacitor/cli.
  2. Rulează npx cap init. Îți cere numele aplicației, ID-ul aplicației (domeniu invers, de exemplu com.studioultau.jocultau) și dosarul web. Indică webDir spre dosarul jocului tău.
  3. Rulează npm i @capacitor/android, apoi npx cap add android. Asta creează proiectul android/.
  4. Rulează npx cap sync de fiecare dată când schimbi fișierele jocului. Le copiază în proiectul nativ.
  5. Rulează npx cap open android ca să deschizi proiectul în Android Studio.

Documentația Capacitor spune că sunt suportate API 24 și versiunile ulterioare, adică Android 7 și mai nou. Proiectele noastre Android folosesc acest minim.

Ce facem diferit: păstrăm proiectul nativ într-un spațiu de lucru separat, mobile/, care copiază jocul în propriul dosar web. Versiunea pentru site rămâne neatinsă, iar tot ce aparține doar aplicației, precum reclamele native, stă în spațiul de lucru.

Pasul 2: construiește și semnează pachetul de aplicație

Din august 2021, aplicațiile noi de pe Google Play trebuie publicate ca Android App Bundles (AAB), nu ca APK-uri. În Android Studio, folosești Build, apoi Generate Signed Bundle/APK, alegi Android App Bundle și creezi sau selectezi un keystore.

Keystore-ul conține cheia ta de încărcare. Pagina Google despre semnarea aplicațiilor explică că, prin Play App Signing, pe care aplicațiile noi trebuie să-l configureze la prima publicare, Google păstrează cheia de semnare a aplicației, iar tu semnezi fiecare încărcare cu cheia de încărcare. Păstrează cheia de încărcare secretă, alege parole puternice și ține keystore-ul într-un loc sigur. Dacă se pierde sau este compromisă, Play Console îți permite să ceri resetarea cheii de încărcare.

  • Nivelul API țintă: de la 31 august 2026, aplicațiile noi și actualizările trebuie să vizeze Android 16 (nivelul API 36) sau mai nou. Verifică ținta în android/app/build.gradle.
  • Codul versiunii: mărește-l înainte de fiecare încărcare. Fiecare pachet încărcat consumă un cod de versiune, deci noi citim cel mai mare din Play Console înainte de fiecare build.
  • Doar build de lansare: niciun meniu de depanare, ID-uri de reclame de test sau scurtături pentru dezvoltatori în pachetul pe care îl trimiți în producție.

Ce se strică într-un webview și ce am făcut noi

Un joc care merge bine într-un browser se poate comporta altfel într-o aplicație. Acestea sunt problemele consemnate în notele noastre de lansare, cu remedierea documentată acolo unde există una.

Butonul Back de pe Android

Plugin-ul App al Capacitor are un eveniment backButton. Documentația spune că ascultarea lui dezactivează comportamentul implicit al butonului Back, deci tu decizi ce face back, iar pentru a închide aplicația există App.exitApp(). În Velvet Pool, am făcut ca back să deschidă meniul de pauză în loc să închidă jocul.

Pauză și reluare

Același plugin declanșează evenimentele appStateChange, pause și resume. Folosește-le ca să oprești jocul, cronometrele și orice reclamă care rulează când jucătorul părăsește aplicația, și ca să reiei curat.

Scurtături de depanare pe localhost

În aplicație, Capacitor servește jocul de la o adresă locală. Dacă jocul tău pornește instrumente de depanare când rulează pe localhost, acestea se vor activa și în aplicație. Scripturile noastre de build forțează aceste steaguri să fie oprite și refuză să compileze dacă nu reușesc.

Reclame

Codul de reclame pentru site nu îl folosim în aplicațiile noastre. Pe Android folosim SDK-ul nativ AdMob printr-un plugin Capacitor, cu unitățile demo de reclame ale Google în timpul testelor și unitățile proprii ale aplicației doar în build-ul de producție.

Aspect și salvare

Pe emulator am găsit butoane tăiate în orizontală și cuvinte lungi care se rupeau prost, ceea ce versiunea de browser nu arăta. Testează fiecare ecran în ambele orientări și verifică dacă progresul supraviețuiește închiderii și redeschiderii aplicației.

Vezi Ricopop, un alt șablon pe care l-am împachetat pentru Google Play

Pasul 3: configurarea în Play Console și lista din magazin

Creezi aplicația în Play Console, apoi parcurgi secțiunea de conținut al aplicației. Formularele pe care le-am completat pentru fiecare joc au fost: politica de confidențialitate, accesul la aplicație, reclamele, clasificarea de conținut, public țintă, Data safety, ID-ul de publicitate și declarațiile guvernamentale, financiare și privind sănătatea.

  • Clasificarea de conținut: Google spune că toate aplicațiile trebuie să aibă o clasificare IARC, iar cele fără una vor fi eliminate. O obții răspunzând sincer la chestionar.
  • Data safety: fiecare aplicație trebuie să-l completeze, inclusiv cele care nu colectează date. Trebuie să reflecte datele colectate de SDK-urile terțe, de exemplu un SDK de reclame, și are nevoie de un link către politica de confidențialitate.
  • Public țintă: răspunde pentru jucătorii pe care chiar îi vizezi. Clasificarea și publicul țintă sunt răspunsuri separate.

Materialele din lista magazinului

  • Iconița aplicației: 512 pe 512 pixeli, PNG pe 32 de biți, până la 1024 KB.
  • Grafica de prezentare: 1024 pe 500 de pixeli, JPEG sau PNG pe 24 de biți fără canal alfa.
  • Capturi de ecran: cel puțin două, până la opt pentru fiecare tip de dispozitiv. Pentru jocuri, Google recomandă cel puțin trei capturi orizontale 16:9 (cel puțin 1920 pe 1080) sau verticale 9:16 (cel puțin 1080 pe 1920), care arată jocul real.
  • Descrierea scurtă: până la 80 de caractere.

Pasul 4: testare, apoi producție

Ghidul nostru intern pune testarea internă pe primul loc: instalezi aplicația din Play cu un cont real și o joci înainte de orice altceva. Apoi lansarea este promovată în producție, unde trece prin revizuirea Google.

Regula pentru conturile personale noi

Centrul de ajutor Play Console spune că conturile personale de dezvoltator create după 13 noiembrie 2023 trebuie să ruleze un test închis cu minimum 12 testeri care au fost înscriși continuu cel puțin 14 zile. După aceea, ceri accesul la producție din Dashboard (panoul) și răspunzi la întrebări despre testul închis, aplicație și pregătirea pentru producție. Include aceste două săptămâni în data de lansare.

Păstrează stările separate când raportezi unui client: încărcat pe o pistă de test, trimis la revizuire, aprobat și public pe Google Play sunt patru momente diferite. Notele noastre de lansare consemnează datele trimiterii, nu datele aprobării, și la fel face și acest ghid.

Ce includ șabloanele noastre și partea pe care o putem face noi

Fiecare șablon vine cu dosarul de joc gata de găzduit, cu sursă lizibilă, un manual și 6 luni de suport, sau 12 cu extensia. Suportul acoperă instalarea și utilizarea fișierelor furnizate și remedierea defectelor reproductibile. Împachetarea pentru Android, reclamele native, integrarea SDK-urilor și publicarea în magazin sunt servicii separate.

Dacă preferi să nu rulezi tu Android Studio, trimite-ne șablonul, planul contului de magazin și termenul. Îți răspundem cu domeniul, prețul și calendarul înainte de orice lucrare. Nu publicăm o listă de prețuri pentru lucrări personalizate.

Cere o ofertă ca să împachetăm jocul tău pentru Google Play

Întrebări frecvente

Cât costă să publici un joc HTML5 pe Google Play?

Google percepe o taxă unică de înregistrare de 25 USD pentru un cont de dezvoltator. Celelalte costuri sunt licența jocului, grafica pentru magazin și timpul tău, sau un serviciu cotat, dacă împachetarea o face altcineva.

Am nevoie de 12 testeri ca să public pe Google Play?

Doar dacă ai un cont de dezvoltator personal creat după 13 noiembrie 2023. Aceste conturi trebuie să ruleze un test închis cu cel puțin 12 testeri înscriși cel puțin 14 zile, înainte să ceară acces la producție.

APK sau AAB?

AAB. Aplicațiile noi de pe Google Play trebuie să folosească Android App Bundle din august 2021. Un APK rămâne util pentru a instala un build direct pe propriul telefon de test.

Aplicația poate pur și simplu să încarce jocul meu de pe site-ul meu?

Nu facem asta. Includem fișierele jocului în aplicație, ca să funcționeze offline și să nu depindă de un site. Politica Google împotriva spamului vizează și aplicațiile al căror scop principal este un webview al unui site, fără permisiunea proprietarului.

Șabloanele tale sunt gata pentru Google Play din prima?

Nu. Sunt jocuri pentru browser gata de găzduit, iar paginile produselor spun că build-urile de aplicație nativă nu sunt incluse. Le poți împacheta singur, cu pașii de mai sus, sau poți comanda lucrarea de la noi, pe ofertă.