Flutter, React Native & Unity

React Native assembleRelease: Variant Output, Signing and Install Checks

assembleRelease is an Android Gradle task that assembles a release APK for the relevant module. It does not upload the app to Google Play, create every possible flavor, or guarantee that release signing has been configured correctly.

By , FounderUpdated 3 min read

Confirm the available task

Run the module's task listing when the project has flavors or custom variants. The Android variant guide explains why demoRelease and productionRelease are distinct outputs.

An illustrative conventional command is:

BASH · REFERENCE EXAMPLE
cd android
./gradlew :app:assembleRelease

Read the actual build output path instead of assuming every project uses the same filename.

Separate assemble from bundle

Task family Typical artifact
assemble... APK output for that variant
bundle... Android App Bundle
install... Build/install workflow for a device

The React Native publishing guide describes release configuration and the current app-bundle workflow. An APK task is useful for direct installation but is not interchangeable with the required Play submission artifact.

Audit inherited configuration

Check signing, application ID suffixes, environment selection and bundle entry points. A release block copied from a starter project may still refer to debug credentials or development endpoints.

Do not assume a CI secret exists because the same build succeeds on a developer's machine.

Verify installation and upgrade behavior

Test a fresh installation and a supported update from the previous release. Uninstalling to avoid a signature mismatch can destroy test data and conceal an actual update-compatibility problem.

Stop Metro and verify the packaged app works independently.

Keep the task and artifact linked

APKLint can inspect package identity and React Native assets, but it cannot tell which Gradle invocation produced a file unless you preserve that provenance. Record task, source revision, build number, signing fingerprint and artifact hash with the test result.

Resolve a production flavor to its actual task

Imagine an Android module with demo and production flavors. A generic release task can be ambiguous or build more than the intended variant, depending on the project. List the available tasks and select the production release APK task explicitly. Record the resulting file path and inspect its application ID, version and certificate before using it in a test. On Windows, invoke the repository's gradlew.bat wrapper rather than assuming the Unix wrapper syntax applies.

The React Native release guide describes the surrounding bundling and signing configuration. Its documented app-bundle workflow differs from an APK assemble task. Keep the requested output format explicit so a locally installable file is not mistaken for the required store submission artifact.

Keep the task, source and output together

Save the source revision, dependency locks, framework version and exact task with the output digest. In CI, collect the expected variant directory rather than any matching APK found anywhere in the workspace. An older successful output can remain after a later failed build and should not be published accidentally.

Check that production configuration does not inherit a staging endpoint, debug signer or a development-only application ID suffix. A release build type describes build behavior, but it does not prove every environment input is appropriate for public users. Verify certificate-bound integrations against the identity of the actual candidate. Include the task's failure outcome in CI gating so a retained output from yesterday cannot be collected after today's signing or bundling task has failed.

Install on a controlled device, stop Metro and launch from the launcher. Navigate to a screen with bundled images and invoke a native module. Test offline behavior according to the app's stated support so a missing packaged bundle or asset does not hide behind a development server. Then test an update over the intended previous release while preserving synthetic saved data. If installation fails, investigate the exact identity or version error instead of uninstalling and calling the resulting clean install an upgrade test. Keep the successful standalone launch and update observations distinct in the release record. Those checks make the assemble task's output reviewable as a specific candidate, rather than merely a green build log.

Sources and further reading

  1. React Native: Publishing to Google Play Store
  2. Android Developers: Configure build variants

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.

APKLint

Android inspection tools and practical release guides. About APKLint · Report a correction