Phaser to APK
Package a Phaser game as a signed Android APK and Google Play AAB without Cordova or Capacitor. Build the game, zip the output and convert it online for free.
Free HTML to APK turns the HTML5 export of a Phaser game into a signed Android app. Phaser games are already web pages, so they make excellent Android apps. Instead of setting up Cordova or Capacitor and Android Studio, build your game as usual, zip the output folder and let Free HTML to APK do the Android part.
Step 1: export from Phaser
- Run your project's production build, for example
npm run buildwith the official Vite or Webpack templates. - Open the output folder (usually
dist/) and check it holdsindex.htmland your bundled script. - Make sure asset paths are relative (
assets/player.png, not/assets/player.png). With Vite, setbase: './'invite.config.js. - Zip the contents of
dist/and upload the ZIP. A game that is oneindex.htmlwith Phaser from a CDN also works, but bundle Phaser locally so the game runs offline.
Step 2: build the APK
- Open the HTML to APK converter and choose ZIP (or HTML for a single file).
- Upload your export, then type the app name and a package name such as
com.yourstudio.game. - On the display step, turn on Full screen and lock the orientation your game uses.
- Create a signing key (or upload yours), press Build, and download the APK to test and the AAB for Google Play.
The website is free, with no account and no watermark. You can also build on your phone with the Android app, which has no file size limit.
Tips for Phaser games on phones
- Use
scale: { mode: Phaser.Scale.FIT, autoCenter: Phaser.Scale.CENTER_BOTH }so the game fits every screen. - Use pointer input (
this.input.on('pointerdown')) rather than keyboard keys, or add on-screen buttons. - Phaser unlocks audio on the first touch by itself, so start music from your first scene's input handler.
- Save progress with
localStorage. It persists inside the app like it does in Chrome.
Test before you publish
Install the APK on a phone (allow Install unknown apps for the app you open it with), then play a full session: start, lose, restart, go to the home screen and come back, and check that saves and sound survive. When it all works, upload the AAB to Google Play. The publishing guide walks through Play Console, and new personal accounts need a 12-tester closed test first.
Questions
Does it work with Phaser 2 / CE?
Yes. Any version that runs in Chrome on Android runs in the app.
Do I need Capacitor or Cordova?
No. The app is a native WebView shell with a JavaScript bridge, so there are no plugins to install.
Can my game vibrate or show notifications?
Yes. Call FreeApp.vibrate() or FreeApp.notify() from your game code; the calls do nothing in a desktop browser, so the same build works on the web.