Your game on Google Play
A game published here can already be installed on a phone (the Install button of its page). To have it on the Play Store too, JumPHP turns it into a real Android app: a Trusted Web Activity. It is the game's page in Chrome, full screen, with no address bar, with its icon and name; the game stays the site's (an update published here is in the app at once). For an app that works without the network or a browser: the native Android app.
You need: a JumPHP project on your computer (on your computer), Docker, and a Google Play developer account (25 $ once). Your Claude can do it all for you: ask it "put my game on Google Play".
1. Build the app
bin/jumphp twa my-game --url https://jumphp.net/my-game
The first time, the command asks:
- the app's package name (for example
io.github.me.my_game): its id on the Play Store, it never changes; - to accept the license of Google's Android SDK (downloaded once, ~1 GB, into
~/.jumphp).
It creates your upload key (~/.jumphp/android/keys/, with its password: back them up, never put them in
git), then builds into games/my-game/dist/android/:
| File | For |
|---|---|
my-game-1.aab |
the Play Store |
my-game-1.apk |
trying it on your phone (adb install, or copy it there) |
assetlinks.json |
proving that the site and the app belong together (step 2) |
It prints your key's SHA-256 fingerprint. The name under the icon is the game's short name
(pwa: {short_name: …} in game.yaml, else its title).
2. Tell the site the app is yours
Without it, the app opens with an address bar. In the Studio, on your game's page, Android app part:
the package name and the fingerprint. The site publishes them in
https://jumphp.net/.well-known/assetlinks.json, which Android checks.
Your Claude does it with update_project (android_package, android_fingerprints). On your own server, put
assetlinks.json at https://your-domain/.well-known/assetlinks.json.
3. Publish it on Google Play
- In the Play Console: Create app, with the same package name.
- Internal testing first: upload the
.aab, install it from the test link. - App signing (Setup): Google signs the app with its own key; copy its SHA-256 fingerprint and add it next to yours (step 2), or the address bar comes back.
- The store listing (screenshots:
bin/jumphp shot), the content rating, then production.
Next versions
The game's code updates by itself (it is the site). To change the app itself (name, icon, colours):
bin/jumphp twa my-game # the version number goes up by one
games/my-game/android/twa-manifest.json keeps the package, the address and the version: it goes into git.