A cross-platform desktop application that automates the build and release process for mobile apps.
Manage React Native projects, build iOS/Android binaries, and upload directly to stores without touching the command line.
The main goal of App Builder is to assist developers who manage multiple mobile applications simultaneously and prefer local builds over complex CI/CD pipelines.
π 100% Local Execution: Everything runs locally on your machine. Your source code never leaves your computer, ensuring maximum privacy and eliminating the need for expensive cloud build servers.
It requires no special configurationβyou set up your project environment as you normally would for standard builds. This tool simply streamlines the workflow, automating the repetitive commands and steps, allowing you to ship updates faster directly from your local machine.
- Framework Support: Manage React Native projects in one place.
- Deep Clean: One-click maintenance to wipe
node_modules,Pods, and artifacts. - Auto-Discovery: Automatically reads
Info.plist,build.gradle. - Notifications: Real-time build status updates via Slack, Discord, and Telegram.
- Store Assets Creator: Design App Store & Play Store screenshots.
- App Icon Generator: Create all icon sizes for iOS/Android from a single image.
- Keystore Generator: Distinct visual tool to create Android signing keys.
- Emulator Manager: Boot and run apps on simulators/emulators.
- Build IPA: Wrapper around
xcodebuildwith configurable export methods (Dev, Ad-hoc, Store, Enterprise). - Direct Upload: Integrated
xcrun altoolfor one-click upload to App Store Connect.
- Build AAB/APK: Direct Gradle execution management.
- Real-time Queue: Monitor build progress, view streaming logs, and cancel operations.
- History Log: Keep track of every build with attached release notes.
- Secure Vault: Encrypts and stores API Keys and Service Accounts using system Keychain/Keyring.
Important
To build iOS applications, you must be running macOS with Xcode installed.
- OS: macOS (Required for iOS), Windows/Linux (Android only - coming soon)
- Node.js: >= 18.x
- Rust: >= 1.70
- Mobile SDKs:
- iOS: Xcode >= 15.0 + Command Line Tools
- Android: Android Studio + SDK >= 33 + JDK 17+
git clone https://github.com/bonnguyenitc/app-builder.git
cd app-builder
npm installnpm run tauri devnpm run tauri buildIf the app fails to open ("App is damaged"), run:
sudo xattr -rd com.apple.quarantine /Applications/App\ Builder.app- Go to Projects β Add Project.
- Select your React Native root folder.
- The app auto-detects configuration. Review and Save.
- Select Project β Click Permissions (Shield Icon).
- Toggle permissions for Android and iOS.
- For iOS, you can also edit the Usage Description.
- Go to Environment Doctor (Stethoscope Icon).
- Click Run Checkup to verify Node.js, Ruby, Java, Xcode, and CocoaPods.
- If an issue is found (e.g., missing CocoaPods), click Quick Fix to auto-install dependencies.
- Go to Emulator Manager (Smartphone Icon).
- View list of available Android Emulators and iOS Simulators.
- Click Boot to start a device.
- Select a project and click Run to launch the app directly on the device.
Create stunning App Store & Play Store screenshots with professional device frames.
- Go to Store Assets (Images Icon).
- Select your target platform (iOS/Android) and device size.
- Drag & drop your app screenshots or click Add Screenshots.
- Customize the background gradient and text color.
- Edit the title and subtitle for each screenshot.
- Click Export All to download high-resolution PNGs in a ZIP file.
Supported Sizes:
| Platform | Device | Size | Required |
|---|---|---|---|
| iOS | iPhone 6.7" | 1290Γ2796 | β Yes |
| iOS | iPhone 6.5" | 1284Γ2778 | β Yes |
| iOS | iPhone 5.5" | 1242Γ2208 | No |
| iOS | iPad Pro 12.9" | 2048Γ2732 | β Yes |
| iOS | iPad Pro 11" | 1668Γ2388 | No |
| Android | Phone | 1080Γ2400 | β Yes |
| Android | 7" Tablet | 1200Γ1920 | No |
| Android | 10" Tablet | 1600Γ2560 | No |
Generate all required app icon sizes for iOS and Android from a single 1024x1024 input.
- Go to Icon Generator (Grid Icon).
- Upload your source image (PNG/JPG).
- Select target platforms.
- Click Generate to create
AppIcon.appiconsetand Android adaptive icons.
Easily create Android release keystores without CLI tools.
- Go to Keystore Generator (Key Icon).
- Fill in the keystore details (Alias, Passwords, Validity).
- Click Generate Keystore and save the
.jksor.keystorefile.
π iOS - App Store Connect API Key (Click to expand)
- Log in to App Store Connect β Users and Access β Integrations β Team Keys.
- Generate a new key with Admin or App Manager role.
- Download the
.p8file. Keep this safe! - Note the Key ID and Issuer ID.
Rename file to AuthKey_<KEY_ID>.p8 and move to one of these locations:
~/.private_keys/(Recommended)~/private_keys/./private_keys/
mkdir -p ~/.private_keys
cp ~/Downloads/AuthKey_ABC123XYZ.p8 ~/.private_keys/Go to Settings β Credentials β Add iOS Credential:
- Team ID: From Apple Developer Account (Membership details).
- Key ID & Issuer ID: From Step 1.
π€ Android - Google Play Service Account (Click to expand)
- Go to Google Cloud Console β IAM & Admin β Service Accounts.
- Create a new service account (e.g.,
play-upload). - Keys tab β Add Key β Create new key β JSON. Save the file.
- Go to Google Play Console β Users and permissions.
- Invite new user β Enter the email of the service account created above.
- Grant Admin permissions (or specific Release permissions).
Go to Settings β Credentials β Add Android Credential:
- Paste the full content of the JSON Key file.
- Select Project β Click Build iOS (Apple Icon).
- Scheme: Usually your app name.
- Configuration:
Release. - Export Method:
app-store(for uploading) orad-hoc(for testing). - Upload to App Store: Check this to auto-upload after build.
- Select Project β Click Build Android.
- Enter Release Notes.
- Toggle Upload to Play Store (Coming soon).
Track all your builds and releases in the History page.
- Core: Project Management (React Native), Auto-info reading.
- iOS:
xcodebuild+ Upload to App Store Connect. - Android: Gradle Build (AAB/APK).
- System: Queue Management, History, Secure Credentials.
- Android: Upload AAB to Google Play Store (In Progress).
- Feature: CI/CD Pipeline integration hooks.
- Feature: Firebase App Distribution support.
- Feature: Native Permissions Manager (Android/iOS).
- Feature: Environment Helper (Doctor/Fixer).
- Feature: Emulator Manager (Boot/Run).
- Feature: Store Assets Creator (App Store/Play Store screenshots).
- Feature: App Icon Generator.
- Feature: Keystore Generator.
- Feature: Discord/Slack/Telegram Notifications.
- Feature: Deep Clean maintenance.
app-builder/
βββ src/ # React Frontend (UI)
β βββ components/ # Reusable UI components
β βββ stores/ # Zustand state
β βββ ...
βββ src-tauri/ # Rust Backend (Core Logic)
β βββ src/
β β βββ commands/ # Bridge between JS and Rust
β β β βββ build.rs # xcodebuild/gradle logic
β β β βββ ...
β βββ tauri.conf.json # App configuration
βββ ...Tip
Debug Logs: If a build fails, check the detailed logs saved at:
- macOS:
$TMPDIR/<project>_<platform>_<timestamp>.log
Output Locations:
- iOS:
<project_root>/ios/build/ - Android:
<project_root>/android/app/build/outputs/bundle/release/
Contributions are welcome! Please check out the issues or submit a PR.
This project is licensed under the MIT License.







