Web App Generator

Wrap any URL in a signed Android app, ready to deploy via your EMM.

Tints the launch screen, status bar, and toolbar in Minimal UI mode. Defaults to white.

Choose or drop image

512 × 512 px PNG recommended for Play Store quality. Optionally maskable. A default icon is used if not provided. Icon is not stored, and will need to be provided on subsequent builds.

Off by default - navigation is locked to the URL above. Enable to let users follow links to other websites within the app.

On by default. Allows the app to trust certificates installed by the user or MDM, including corporate SSL inspection proxies and internal self-signed certs. Turn off to restrict trust to the Android system CA store only.

Required for in-page QR scanning, video calls, or photo upload via the camera. The user is still prompted to grant the runtime permission on first use.

Required for in-page voice input, video calls, and audio recording. Runtime permission is requested on first use.

Required for pages that call the Geolocation API (maps, store-finder, check-in flows). Runtime permission is requested on first use.

Swipe down at the top of the page to reload. Most useful in Standalone and Full screen display modes, which have no toolbar refresh button. Only fires when the page is scrolled to the top, so it doesn’t interfere with normal scrolling.

On by default. Required by virtually all modern web apps. Disable only for static / content-only sites where JS is unnecessary or unwanted (e.g. locked-down kiosks).

On by default. Required for login sessions, preferences, and most authenticated flows. Disabling breaks anything that relies on session state.

Prevents the device from dimming or sleeping while the app is foregrounded. Suited to kiosk and digital-signage deployments running in Full screen mode.

Blocks screenshots, screen recording, and shows a blank preview in the app switcher (Android FLAG_SECURE). For wrappers over sensitive content - banking, medical, internal tools.

Replaces the WebView's User-Agent for every request from this app. Useful when a site sniffs the UA and serves a degraded experience to WebViews. Most users should leave this blank.

AAB is preferred for Managed Google Play private app distribution.

Used for local testing purposes only, should not be used in production and cannot be deployed through Google Play.
Signed with Bayton's key. Each new build receives a unique package name; supply an update code below to rebuild with the same package name (required for EMM silent-update flows and for republishing to the same Managed Google Play listing). AAB uploads to Managed Google Play are unaffected - Play App Signing takes over after first upload.
Choose keystore file

Your keystore and credentials are used only to sign this build and are never stored. They are purged immediately after the build completes. This is a convenience feature and should never be provided a keystore used to sign any other app; download the application source and sign it directly if you wish to share the keystore.

Enter the update code from a previous build to reuse the same package name for an update. Leave blank to generate a new unique package name.

Queued Waiting for a build worker…