npm.io
2.0.0-rc.3 • Published 20h agoCLI

@ahmedsamirelsaka/react-native-local-release

Licence
MIT
Version
2.0.0-rc.3
Deps
0
Size
249 kB
Vulns
0
Weekly
0

react-native-local-release

Security-first local Fastlane release toolkit for bare React Native apps (iOS + Android).

Package: @ahmedsamirelsaka/react-native-local-release
Version: 2.0.0-rc.3 (npm dist-tag next)

Supported

Area Support
Bare React Native Yes
Android Groovy DSL Yes
Android Kotlin DSL (.kts) Yes
npm / Yarn / pnpm Yes
Common monorepo layouts Detected; install into the app package root
macOS (iOS + Android) Yes
Linux/Windows (Android-focused) Android lanes; iOS requires macOS
Expo managed / EAS Not supported — stop and use Expo tooling

Quick start (npm)

# From your React Native app root
npx @ahmedsamirelsaka/react-native-local-release@2.0.0-rc.3 install --project .

# Prefer an exact version in package.json so daily commands do not float:
# "devDependencies": { "@ahmedsamirelsaka/react-native-local-release": "2.0.0-rc.3" }

Useful flags:

--dry-run
--non-interactive --skip-credentials
--team-id ABCD123456
--fixed-ios-build 1
--store-uploaded-versions          # keep IPA/AAB copies under versions/
--no-store-uploaded-versions

During install you will be asked (interactive mode):

  1. Whether to configure Apple / Play / keystore credentials now
  2. Whether to archive each uploaded build under versions/

Commands

rn-local-release install --project .
rn-local-release configure --project .     # credentials
rn-local-release doctor --project .
rn-local-release audit --project .         # credential tracking / ignore checks
rn-local-release migrate --project .
rn-local-release uninstall --project . [--purge-credentials] [--yes]
rn-local-release verify|build|upload|beta|promote --project .

After install, app scripts (examples):

yarn release:doctor
yarn release:credentials
yarn release:compile          # typecheck + IPA + AAB, no bump, no upload
yarn release:upload           # upload previous compile (no bump)
yarn release:beta             # bump + compile + upload

Production promote requires an explicit confirmation env:

RN_LOCAL_RELEASE_YES=1 yarn release:ios:promote version:1.2.3 build:1
RN_LOCAL_RELEASE_YES=1 yarn release:android:promote version_code:42

Security defaults

  • macOS: Keychain for passwords + per-user vault for .p8 / Play JSON (~/.rn-local-release/vault, 0700/0600)
  • Passwords are never echoed; secrets are never written to manifests, crash logs, or docs
  • Verify/build commands are argv-allowlisted (no ;, |, $(), etc.)
  • Install is transactional with rollback; uninstall restores/removes only unchanged managed files
  • Crashes and Fastlane failures write redacted files under logs/
  • Optional versions/ archive of uploaded artifacts (gitignored)

See CREDENTIALS.md and SECURITY.md.

Config

fastlane/release.config.json (schema v2) controls platforms, version sources, gates, credential provider, logging, and archives. Reinstall merges detected defaults under your existing config unless you pass --force carefully.

Uninstall

rn-local-release uninstall --project . --yes
# Also wipe Keychain/vault material:
rn-local-release uninstall --project . --yes --purge-credentials

Limitations

  • Does not support Expo-managed workflows
  • Does not invent signing identities — you must already have Apple/Google release credentials
  • Does not replace App Store Connect / Play Console review policies
  • Ruby/Fastlane must be installable on the machine (bundle install)

Migration from 1.x

See CHANGELOG.md. Run rn-local-release migrate --project . then configure.

License

MIT

Keywords