Setup Wizard
Interactive wizard generates complete configuration. Auto-detects project, creates CI/CD workflows, and gets you deploying in 5 minutes.
Build, version, and deploy iOS & Android apps with a single command. Production-ready automation for mobile development.
Mobile app deployment shouldn't be complicated. MobileCtl simplifies your entire DevOps pipeline into one setup wizard and one deployment command.
Start with the interactive setup wizard:
mobilectl setupThe wizard auto-detects your project and generates everything you need:
mobileops.yaml configurationAfter setup, deploy with a single command:
# Complete release: version bump + changelog + build + deploy
mobilectl deploy --bump-version patch --changelog --all-flavorsThat's it. One command to go from code to production.
The deploy command intelligently:
--bump-version--changelog (or -C)--skip-build)Or use commands separately for more control:
mobilectl version bump patch # Manual version control
mobilectl changelog generate # Separate changelog step
mobilectl build all # Build only
mobilectl deploy --all-flavors # Deploy all flavors
mobilectl deploy -G production # Deploy specific groupAuto-detects your project structure and provides smart defaults. Get started in seconds:
mobilectl build androidEvery operation creates automatic backups. Made a mistake? Restore instantly:
mobilectl version restore
mobilectl changelog restoreKeep secrets safe with environment variable support:
build:
android:
keyPassword: ${MOBILECTL_KEY_PASSWORD}
storePassword: ${MOBILECTL_STORE_PASSWORD}Generate beautiful HTML or JSON reports for every build:
report:
enabled: true
format: html
output_path: ./build-reportsRun the interactive wizard:
mobilectl setupIt generates your complete mobileops.yaml:
# Generated by mobilectl setup wizard
app:
name: MyAwesomeApp
identifier: com.example.awesome
version: 1.0.0
build:
android:
enabled: true
flavors:
- free
- paid
- premium
defaultFlavor: free
defaultType: release
ios:
enabled: true
project_path: ios/Runner.xcworkspace
scheme: Runner
deploy:
enabled: true
default_group: production # Default group when no CLI flag provided
flavor_groups:
production:
name: Production
description: Production builds for release
flavors:
- free
- paid
- premium
testing:
name: Testing
description: Internal testing builds
flavors:
- qa
- staging
android:
firebase:
enabled: true
service_account: credentials/firebase-adminsdk.json
testGroups:
- qa-team
- beta-testers
play_console:
enabled: true
service_account: credentials/play-console.json
ios:
testflight:
enabled: true
api_key_path: credentials/app-store-connect-api-key.json
team_id: ABC123DEF
version:
enabled: true
auto_increment: true
bump_strategy: patch
changelog:
enabled: true
format: markdown
output_file: CHANGELOG.md# Deploy production group (uses default_group from config)
mobilectl deploy --bump-version patch --changelog
# Or deploy all flavors explicitly
mobilectl deploy --all-flavors --bump-version patch --changelog
# Or deploy specific group
mobilectl deploy --flavor-group testingThis will:
1.0.1Production Ready Changelog
The easiest way to get started:
# Clone or download MobileCtl
git clone https://github.com/AhmedNader65/MobileCtl.git
cd MobileCtl && ./gradlew build
# Run the setup wizard
cd /path/to/your/mobile/project
mobilectl setupThe wizard will:
mobileops.yamlLearn about the Setup Wizard →
# Create your config manually
cat > mobileops.yaml << EOF
app:
name: MyApp
identifier: com.example.myapp
version: 1.0.0
build:
android:
enabled: true
defaultType: release
deploy:
android:
firebase:
enabled: true
testGroups: [qa-team]
EOF
# Start building and deploying
./mobilectl.sh build
./mobilectl.sh deploy --all-flavors