npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

rn-release-apk

v1.0.0

Published

CLI tool to build, rename, and share React Native release APKs in one command.

Readme

rn-release-apk

npm version npm downloads license node platform

One command to build, rename, and deliver your React Native release APK — no scripts, no manual steps.


The Problem

Every time a client asks for an APK, you do the same tedious dance:

cd android
./gradlew assembleRelease
cd app/build/outputs/apk/release
# find the file...
# rename it with the project name and today's date...
# open the folder...
# send to client

rn-release-apk automates all of this in a single command.


What It Does

  1. ✅ Validates your project structure
  2. 🔨 Runs ./gradlew assembleRelease inside the android/ folder
  3. 📦 Reads your project name from package.json
  4. ✏️ Renames the APK to <project-name>-<YYYYMMDD>.apk
  5. 📂 Opens the output folder in your file explorer

Usage

Run from the root of your React Native project — no installation needed:

npx rn-release-apk

That's it. Your APK will be waiting at:

android/app/build/outputs/apk/release/<project-name>-<YYYYMMDD>.apk

Demo

  ╭─────────────────────────────────────────╮
  │    React Native  APK Release Builder    │
  ╰─────────────────────────────────────────╯

  › Validating project structure

  ✔  Project structure looks good

  ◆ Project      → my-awesome-app
  ◆ Date         → 20260418
  ◆ Platform     → macos
  ◆ Output       → android/app/build/outputs/apk/release

  › Running Gradle assembleRelease

    ┌── Gradle output ──────────────────────────────────────────
    ...
    └── end of Gradle output ──────────────────────────────────

  ✔  Gradle assembleRelease completed

  › Locating built APK

  ✔  Found: app-release.apk

  › Renaming APK

  ✔  Renamed → my-awesome-app-20260418.apk

  › Opening output folder

  ✔  Output folder opened

  ╭──────────────────────────────────────────────────────╮
  │              ✔  Build Successful                     │
  │                                                      │
  │  Project    my-awesome-app                           │
  │  APK        my-awesome-app-20260418.apk              │
  │  Size       28.43 MB                                 │
  │  Location   android/app/build/outputs/apk/release/  │
  │  Duration   94.3s                                    │
  ╰──────────────────────────────────────────────────────╯

  →  APK is ready to share with your client!

Requirements

| Requirement | Details | |---|---| | Node.js | v14 or higher | | React Native project | Must have an android/ folder with Gradle wrapper | | Release signing | Your android/app/build.gradle must have a signingConfig for release builds | | Java / JDK | Required by Gradle (JDK 11+ recommended) |

No global install needed. npx downloads and runs the tool on demand.


Release Signing Setup

rn-release-apk requires your app to be configured for signed release builds. If you haven't done this yet, follow the official React Native guide.

In short, your android/app/build.gradle should have:

android {
    ...
    signingConfigs {
        release {
            storeFile file(MYAPP_UPLOAD_STORE_FILE)
            storePassword MYAPP_UPLOAD_STORE_PASSWORD
            keyAlias MYAPP_UPLOAD_KEY_ALIAS
            keyPassword MYAPP_UPLOAD_KEY_PASSWORD
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

Platform Support

| Platform | File Explorer | |---|---| | macOS | Finder | | Windows | Windows Explorer | | Linux | Auto-detects: xdg-open, nautilus, dolphin, thunar, nemo |


Optional: Install Globally

If you build APKs frequently, install it globally to skip the npx download each time:

npm install -g rn-release-apk

Then just run:

rn-release-apk

Troubleshooting

android/ folder not found Make sure you're running the command from your React Native project root (the folder that contains package.json and android/).

Gradle build failed Check the Gradle output printed above the error. Common causes: missing signing config, missing keystore file, or Java not installed.

No APK found after build Your signing config may not be set up for release builds. See the Release Signing Setup section above.

Could not open folder automatically (Linux) Install a file manager (sudo apt install nautilus) or navigate manually to android/app/build/outputs/apk/release/.


Contributing

Contributions, issues, and feature requests are welcome!

  1. Fork the repo
  2. Create a branch: git checkout -b feat/my-feature
  3. Commit your changes: git commit -m 'feat: add my feature'
  4. Push and open a Pull Request

License

MIT © Rashidul