docs / testing & shipping

Testing before release

A converted site has a narrow set of ways to fail, which makes a short, disciplined test pass unusually effective. This is that pass — from the first sideloaded APK to Google Play's closed testing track.

7 min read·6 sections·updated Sep 2026
TL;DR

Run the ZIP checks, install the APK on two or three phones (one old and cheap), work through the test script below online and offline, install the new version over the previous one to prove data survives, then use Play's internal testing track before a production release.

Before building

  • ZIP opens in the builder preview on the start page you expect.
  • Case checker: no mismatches, no missing files, no root paths.
  • Permission scanner: the permissions you switched on match the APIs you use.
  • No test code left in: Eruda, console.log noise, staging API URLs.

After building: check the APK itself

APK InspectorOpen any APK: package name, version, SDK levels, permissions, signing schemes and certificate SHA-1/SHA-256 Open tool

Confirm the package name is the one you intend to keep forever, the versionCode is higher than any build you have distributed, debuggable is false, and the permission list contains nothing surprising.

The 15-minute device script

  1. Install from the downloaded file. Icon and name look right on the home screen and in the app switcher.
  2. Launch: splash, then your first screen, with no white flash and no layout jump.
  3. Navigate every screen. Use the Android back button on each — it should go back, and exit only from the first screen.
  4. Rotate the phone (if you allow it) and bring up the keyboard on every form.
  5. Permissions: accept once, then reinstall and deny once. The page must cope with both.
  6. Links: tap every external, tel:, mailto: and share link.
  7. Offline: close the app, airplane mode on, cold-start it, repeat steps 2–3.
  8. Persistence: create some data, force-stop the app, reopen — the data is there.

A small device matrix

DeviceCatches
Your own recent phoneFunctional bugs
An old or budget phone (Android 8–10, 3 GB RAM)Slow JavaScript, old WebView features, memory
A small screen (≤ 360 dp wide) or a tabletLayout overflow, tiny or huge touch targets

Three devices find the overwhelming majority of real problems. Friends' phones count.

Upgrade test

Install the previous version, use it, then install the new APK over it without uninstalling. It must install (same package name, same signing key, higher versionCode) and keep the user's data. This is the test most often skipped and the failure users punish hardest: an update that wipes their data or refuses to install.

Google Play testing tracks

TrackWhoUse it for
Internal testingUp to 100 testers by email, available within minutesEvery candidate build
Closed testingInvited groups; required for new personal developer accounts before productionA real-world beta
Open testingAnyone who opts in from the store listingWider betas

Play tracks take an AAB, which is part of Pro. New personal developer accounts must run a closed test with a minimum number of testers for a continuous period before they can publish to production — check the current requirement in Play Console and start it early.

FAQ

Do I need Google Play to test with other people?

No. You can send the APK file directly; testers allow installs from unknown sources once. Play's testing tracks add automatic updates and are required before a first production release on new personal accounts.

The update won't install over the old version — why?

One of three things changed or did not: the package name must be identical, the signing key must be identical, and the new versionCode must be higher. The APK inspector shows all three for both files.

How many testers do I really need?

For bugs, a handful on different devices. For Google Play's closed-testing requirement on new personal accounts, whatever number Play Console currently specifies — plan for it from the start.

Tools for this step

Unzip it on a phone today

Upload the ZIP, name the app, pick an icon — and download a signed APK a few minutes later. Free builds, no watermark, no Android Studio.

Convert a ZIP — free site.zip → app-release.apk