Skip to content

How to Publish Your App to the Play Store (Pro)

An installed PWA lives on the home screen, but it is not in a store, so nobody finds it by searching. This turns the same site into a real Android app.

The signing key stays yours throughout. That key controls every future update, so it is not something to hand to anyone, DevDiggers included.

Go to DevDiggers Plugins → Progressive Web App → Configuration → App Package.

The Store Readiness checks

Every row is either something the store rejects or something that makes the published app visibly wrong. Clear them before you build rather than after an upload is refused.

The ones that usually need work are the icons. A 512px icon is what the packager scales every Android density from, and a maskable icon is what stops Android cropping into your logo. Both are on the App Icons tab.

The app name check exists because the Play Store allows 30 characters, and the launcher label check because Android truncates over about 12. Both are on the General tab.

The Package Details section

Package Name is the permanent Android identifier, in reverse domain form. Leave it empty to use your own domain reversed, which is almost always the right answer.

The Package Name field

App Version defaults to 1.0.0. Raise it before every upload: the Play Store refuses a build whose version is not higher than the last one.

The Build Android App section of the App Package tab

The Download twa-manifest.json button

This is your app name, colours, icons, start URL and package name in the format both build tools read. Download it again whenever you change any of those, because the file is a snapshot rather than a live link.

Two routes, and the tab links both. PWABuilder runs in a browser and needs nothing installed. Bubblewrap runs on your own machine.

PWABuilder is Microsoft’s, it is free, and it asks for no account. Open pwabuilder.com and paste your site address into the one field on the page.

The PWABuilder home page with its single URL field

Give it the address of a page that actually carries your manifest. Your home page normally does. A page excluded from caching, or a landing page built by a page builder that strips the head, may not.

PWABuilder loads your manifest, your icons and your service worker, and reports on them.

The PWABuilder report card for a site running this plugin

The name, the icon and the colours it shows are the ones this plugin serves, so this screen doubles as a check that your settings reached the manifest. Action Items are suggestions, not blockers. Nothing in that list stops a package being built.

Press Package For Stores. If your manifest and icons are in order, PWABuilder says so and offers one card per store.

The store-ready dialog offering Microsoft Store, Google Play and App Store packages

Choose Google Play.

The Google Play package options, with Package ID prefilled from the manifest

Package ID: The permanent Android identifier, prefilled from your manifest. Check it against the Package Name you set in Step 2, because this is the field the warning above is about.

App name and Short name: Prefilled from the manifest too. Short name is the launcher label.

All Settings opens the rest: host, start URL, version, the six navigation and theme colours, the three icon URLs, display mode, and the signing key.

Signing key offers New, Use mine and None. Leave it on New for a first build and PWABuilder creates the keystore for you and puts it in the download. Choose Use mine only when you already hold a keystore for this app, which is the case for every build after the first.

Press Download Package. The zip holds the .aab file you upload to the Play Console, your keystore and the details needed to use it again. Keep that zip somewhere safe. Losing the keystore means you can never update the app.

Bubblewrap runs on your own machine, which is the route to take if you would rather the whole process stayed there. The tab carries the commands. The order matters: the first command creates the project and your keystore, then you replace the twa-manifest.json it writes with the one you downloaded in Step 3, then update and build. Skip the replacement and you ship the defaults rather than your settings.

Building prints a SHA-256 fingerprint for your keystore. PWABuilder writes it into signing-key-info.txt inside the zip, and Bubblewrap prints it in the terminal. Paste it into the field and save.

The Signing Fingerprints field

One per line, as 32 colon-separated hex pairs. Anything that is not a valid fingerprint is ignored rather than published, so a half-pasted key cannot break the file for everybody.

Saving publishes an asset links file at /.well-known/assetlinks.json on your own domain. Android fetches it and checks that the app and the site belong to the same owner, and that check is what removes the browser bar from the installed app.

The section tells you the state of that file and links it, so you can open it and confirm your host is not intercepting the request. Until a fingerprint is saved, the address returns a 404.

The Play Console is Google’s, and it needs a Google account and a one-off developer registration fee, so there is no screenshot of it here. What you do in it is short, and it is the same for any app.

  1. Create the app, and give it a name, a default language and a category.
  2. Under Production, create a release and upload the .aab file from the zip.
  3. Fill in the store listing: description, an icon, a feature graphic and screenshots.
  4. Complete the content rating, data safety and target audience questionnaires.
  5. Send it for review.

Then come back here and add a second fingerprint. After the first upload Google re-signs the app with its own key, and shows that key’s fingerprint in the Play Console under Setup → App integrity → App signing. Add it as a second line in the field from Step 5 and save.

Skipping this is the single most common reason a published app opens with a browser bar when the test build did not. The test build was signed with your key, which you published. The store build is signed with Google’s, which you did not.

The iOS section

Apple does not allow an app to be built anywhere but on a Mac, so there is no equivalent one-step route. Two options, and most sites are better off with the first.

Add to Home Screen costs nothing. iOS installs your PWA from the Safari share sheet. It gets your icon, splash screen and full screen display, push works once it has been added, and updates are live immediately. No developer account and no review.

A real App Store listing needs a Mac with Xcode and a paid Apple Developer account. PWABuilder generates the iOS project from the same site. Be aware that Apple rejects apps that are only a wrapper around a website, so the listing has to argue for what the app does beyond the site.