CLI Builds
The wm-reactnative-cli builds React Native apps locally or in CI/CD pipelines. Provides full control over build environment and keeps certificates on local filesystem.
GitHub: wavemaker/wm-reactnative-cli
Installation
Install globally:
npm install -g @wavemaker/wm-reactnative-cli
Verify:
wm-reactnative --version
Update:
npm update -g @wavemaker/wm-reactnative-cli
Prerequisites
Universal
- Node.js 18.16.1+
- Java JDK 11
- Maven 3.8.6+ (for project export)
Android
- Android Studio (provides SDK and tools)
- Android SDK Platform-specific versions
- Environment variable:
ANDROID_HOMEorANDROID_SDK_ROOT
Setup:
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
iOS (macOS only)
- macOS operating system
- Xcode latest stable version
- Xcode Command Line Tools:
xcode-select --install - CocoaPods:
sudo gem install cocoapods
Android Builds
Debug Build
wm-reactnative build android "/path/to/react-native-zip"
Output: app-debug.apk (auto-generated debug keystore)
Production Build
wm-reactnative build android "/path/to/react-native-zip" \
--dest="/path/to/output" \
--aKeyStore="/path/to/release.keystore" \
--aStorePassword="keystore_password" \
--aKeyAlias="key_alias" \
--aKeyPassword="key_password" \
--buildType="production"
Parameters:
--dest– Output directory (optional)--aKeyStore– Keystore file path--aStorePassword– Keystore password--aKeyAlias– Key alias name--aKeyPassword– Key password--buildType– "production" for release builds
Output:
- AAB:
app-release.aab(default for production) - APK:
app-release.apk(if AAB generation disabled)
Build Duration
- First build: 15-30 minutes (downloads dependencies)
- Subsequent builds: 5-10 minutes (cached)
iOS Builds
macOS required. iOS builds cannot run on Windows or Linux.
Debug Build
wm-reactnative build ios "/path/to/react-native-zip" \
--iCertificate="/path/to/development.p12" \
--iCertificatePassword="p12_password" \
--iProvisioningFile="/path/to/development.mobileprovision" \
--iCodeSigningIdentity="iPhone Developer: Name (TeamID)"
Output: app-debug.ipa
Production Build
wm-reactnative build ios "/path/to/react-native-zip" \
--dest="/path/to/output" \
--iCertificate="/path/to/distribution.p12" \
--iCertificatePassword="p12_password" \
--iProvisioningFile="/path/to/appstore.mobileprovision" \
--iCodeSigningIdentity="iPhone Distribution: Company (TeamID)" \
--buildType="production"
Parameters:
--iCertificate– P12 certificate path--iCertificatePassword– P12 password--iProvisioningFile– Provisioning profile path--iCodeSigningIdentity– Certificate name from Keychain--buildType– "production" for release
Find code signing identity:
security find-identity -v -p codesigning
Output: app-release.ipa
Build Duration
- First build: 20-40 minutes (CocoaPods install)
- Subsequent builds: 10-20 minutes (cached)
Testing Builds
Android
Install via ADB:
adb install /path/to/app-release.apk
Direct installation:
Transfer APK to device and install from file manager.
iOS
Install via Xcode:
- Connect device via USB
- Xcode → Window → Devices and Simulators
- Drag-and-drop IPA onto device
Install via Apple Configurator 2:
- Download Apple Configurator 2
- Connect device
- Drag IPA to Apps section
TestFlight:
Upload IPA to App Store Connect for beta testing.
Troubleshooting
Android
ANDROID_HOME not set:
export ANDROID_HOME=/path/to/android-sdk
Gradle build failed:
- Check Java version:
java -version(requires Java 11) - Clean cache:
./gradlew cleanin android directory
Keystore errors:
Verify keystore path and passwords:
keytool -list -v -keystore file.keystore
iOS
Xcode not found:
sudo xcode-select --switch /Applications/Xcode.app
Code signing failed:
- Verify certificate imported to Keychain Access
- Check code signing identity matches certificate name
- Ensure provisioning profile includes certificate
CocoaPods errors:
# Update CocoaPods
sudo gem install cocoapods
# Clear cache
pod cache clean --all
Summary
- Install:
npm install -g @wavemaker/wm-reactnative-cli - Android: Works on any OS, requires Android SDK
- iOS: Requires macOS, Xcode, CocoaPods
- CI/CD: Base64-encode certificates, store as secrets
- Build times: 15-30 min (first), 5-20 min (subsequent)
Related Documentation
Build Documentation:
- Overview – Build methods comparison
- AppChef – Cloud-based alternative
- Expo Builds – Expo EAS Build alternative
- Configuration – App settings and certificates
Publishing Documentation:
- Publishing Overview – Distribution after building
- Android Publishing – Upload AAB to Play Store
- iOS Publishing – Upload IPA to App Store
- Certificates and Signing – Certificate generation
External Resources:
- wm-reactnative-cli GitHub – Official CLI repository
- Android SDK Setup – Android development environment
- Xcode Installation – iOS development environment
- CocoaPods – iOS dependency manager