Use the Android project's release task
For a conventional project, an illustrative APK command is:
cd android
./gradlew :app:assembleRelease
On Windows use the wrapper's .bat form. Flavor-specific projects have different task names. The React Native release guide documents the surrounding signing and bundling configuration; its current build-android --mode=release workflow produces an AAB through bundleRelease, not an APK.
Check release signing and configuration
Verify the selected application ID, signing configuration, version, environment variables and native dependencies. Do not commit keystore passwords or substitute debug signing for a public release.
A successful Android compilation does not establish that the expected JavaScript entry point was bundled.
Test with Metro stopped
Install the output on a controlled device, stop the development server and launch from the device launcher. Exercise navigation, images, native modules and an offline path where supported.
| Failure | Investigate |
|---|---|
| Cannot find JS bundle | Release bundling/task configuration |
| Missing images | Asset paths and packaging |
| Native module unavailable | Linking, code generation or variant dependency |
| Login fails | Release certificate and environment identity |
Understand the JavaScript engine
The Hermes guide describes the bundled engine and release bytecode behavior. A JavaScript engine flag alone does not prove a custom bundle-loading path uses the intended precompiled output.
Inspect the artifact, then test delivery
APKLint's React Native APK Analyzer can help identify framework assets and native libraries. It cannot execute the JavaScript application or prove Metro independence. Retain the exact APK and test result, then separately validate the Play-delivered build when preparing an app-bundle release.
Prove that the APK carries the application it needs
For a conventional bare project, the Gradle command above produces the selected APK variant. After installation, close the Metro server and disconnect the development connection used during ordinary coding. Launch from the device launcher and open several application routes. If the app now fails to find JavaScript, inspect the release bundling task and its configured entry file rather than restoring Metro and declaring the APK complete.
The publishing guide explains packaging of the JavaScript and drawable resources. Projects with custom directory layouts or entry files must configure those inputs deliberately. A copied bundle from an older build can make startup appear successful while running stale application logic.
Test one bundled asset and one native integration
Choose a screen containing a locally bundled image and a feature that calls an Android native module. Verify the image after a clean installation and while offline. For the module, test an ordinary operation plus a permission denial or unavailable-resource case. This checks both packaging and the application's handling of the native boundary. Use a known change in the candidate, such as a harmless test-screen label, to establish that the installed JavaScript is the new bundle. Record and remove any temporary diagnostic marker before public distribution.
Inspect the selected JavaScript engine and framework version together. The Hermes documentation distinguishes using the engine from correctly using the release bytecode path. A custom loader requires its own verification; the presence of an engine library alone does not establish what application bundle was executed.
Keep the new artifact's application ID, version code, certificate and digest with the test. Verify that the application reaches the intended environment and that certificate-bound sign-in works for this distribution path. Test a clean installation separately from an update preserving prior data. If preparing a Play release, build and test the appropriate bundle delivery afterward, because a successful local APK test does not cover every store packaging or signing condition. The result should be a standalone release candidate whose bundled code, assets and native integrations have been exercised without dependence on the development server.
Sources and further reading
Reference review: 29 September 2026. Examples illustrate the workflow; check your installed versions, release artifact and account-specific Console requirements before applying them. This guide is not a claim that APKLint executed your project or verified your private account.


