{"library":"rn-ota-bundler","title":"React Native OTA Bundler CLI","description":"rn-ota-bundler is a command-line interface (CLI) tool designed to streamline Over-The-Air (OTA) updates for React Native applications that utilize a multi-bundle architecture. It provides a comprehensive suite of commands to bundle, optionally obfuscate using `javascript-obfuscator`, zip, and manage React Native modules, then upload them to a remote server for distribution. The current stable version is 1.0.15. While a specific release cadence isn't published, the tool appears actively maintained as a solution for modern React Native development. Key differentiators include its end-to-end CLI workflow for managing the entire OTA lifecycle, from local bundling and obfuscation to server interaction for authentication, module/variant management, and release deployment, catering specifically to multi-bundle React Native setups. It simplifies version detection for both Android and iOS platforms by parsing `build.gradle` or `Info.plist`/`project.pbxproj` and integrates optional JavaScript obfuscation for deployed bundles.","language":"javascript","status":"active","last_verified":"Thu Apr 23","install":{"commands":["npm install rn-ota-bundler"],"cli":{"name":"rn-ota","version":null}},"imports":["npx rn-ota-bundler <command> [options]","(N/A)","(N/A)"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"// First, install the CLI tool as a dev dependency\nnpm install -D rn-ota-bundler\n\n// Login to the OTA server. By default, it attempts to connect to http://localhost:3000.\n// This command opens a browser for authentication and saves the JWT token locally.\nnpx rn-ota-bundler login\n\n// Add a new module named 'myAppModule'. This registers it with the OTA system.\nnpx rn-ota-bundler modules --add myAppModule\n\n// Add a new environment/variant named 'staging' for organizing releases.\nnpx rn-ota-bundler variants --add staging\n\n// Add a local app version '1.0.0' for tracking compatibility with bundles.\nnpx rn-ota-bundler versions --add 1.0.0\n\n// Bundle the 'myAppModule' for the Android platform, enabling obfuscation.\n// For obfuscation to take effect, an 'obfuscator.config.json' file must be present in your project's root directory.\nnpx rn-ota-bundler bundle -m myAppModule -p android --obfuscate\n\n// Release (bundle and upload) the 'myAppModule' for the iOS platform to the configured server.\n// This command performs bundling and then uploads the generated zip file.\nnpx rn-ota-bundler release -m myAppModule -p ios\n\n// List all remote bundles that have been uploaded.\nnpx rn-ota-bundler bundles\n\n// Edit properties of a previously released bundle (e.g., bundle ID '123').\n// Here, we activate the bundle and set its minimum compatible app version.\nnpx rn-ota-bundler edit-bundle 123 --active true --min-app 1.0.0","lang":"javascript","description":"This quickstart demonstrates the core workflow of `rn-ota-bundler`: authenticating, setting up modules and environments, locally bundling with optional obfuscation, releasing (bundling and uploading) to a server, listing bundles, and managing bundle properties post-release via CLI commands.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}