Mobile CI/CD that runs on your Mac
Push a tag.
Your app ships.
Mili Ship builds, signs and publishes your Flutter and React Native apps to Google Play and TestFlight — on the Mac you already have. No build server, no YAML, no paid CI minutes.
- Free & open source
- macOS 13+
- Flutter · React Native · Expo
- No fastlane
- Checkout release/1.4.0+520:03
- Install dependenciesflutter pub get
- Android · shorebird release.aab signed
- Publish to Google Playinternal track
- iOS · archive & signautomatic signing
- Upload to App Store ConnectTestFlight
Shipped 1.4.0 (52)to Google Play and TestFlight
Works with the tools you already ship with
- Flutter
- React Native
- Expo
- Shorebird
- Google Play
- App Store Connect
- TestFlight
- GitHub Actions
How it works
From git tag to TestFlight in three steps
Set it up in minutes with a guided wizard. After that, releasing is a git command.
- 01
Point it at your repo
Paste a Git URL. Mili Ship clones it, finds your Flutter or React Native app — even deep in a monorepo — and fills in the package name, bundle ID, team ID and flavors.
- 02
Connect the stores once
Add a Google Play service account and an App Store Connect API key. Test each connection with one click. Passwords stay in the macOS Keychain.
- 03
Push a tag
git tag release/1.4.0+52 && git push --tags. Mili Ship checks it out, builds, signs and publishes both platforms — and tells you when it lands.
The app
Every tag, every build, one window
See your release tags, their versions and how each deployment went. Deploy any tag with one click, or let new tags ship themselves.

Features
Everything a mobile release needs.
Nothing it doesn’t.
The whole release pipeline — checkout, dependencies, build, signing, versioning and store upload — in one native Mac app.
Flutter and React Native
Flutter with flutter or Shorebird, React Native with Gradle and xcodebuild — bare or Expo. npm, yarn, pnpm, bun, melos and FVM all work.
Shorebird code push
release/… tags go to the stores; patch/… tags ship an over-the-air Shorebird patch.
Signing, handled
Google Play App Signing with an upload key Mili Ship can generate for you. Automatic iOS signing with your App Store Connect API key.
Versions your way
Require the tag to match pubspec.yaml or build.gradle, take the version from the tag, or auto-increment the build number from the stores.
Live in GitHub Actions
One click installs GitHub’s runner on your Mac. Every tag becomes a GitHub Actions run with the full log — free, no Actions minutes.
Lives in your menu bar
Close the window and it keeps watching tags and running the build queue. Notifications tell you when a release lands.
Private by design
Your code, keystores and API keys never leave your Mac. Secrets are masked in every log.
Straight to the stores
Talks to the Google Play Developer API and App Store Connect directly: tracks, staged rollouts, release notes, TestFlight.
GitHub Actions
Your whole team sees every release — in GitHub
Mili Ship installs GitHub’s official self-hosted runner, adds one small workflow to your repository and streams each build into GitHub Actions. Your teammates push a tag and watch it ship — no Mac access needed.
- Free on your own Mac — no GitHub Actions minutes, even for private repos
- Starts the moment a tag is pushed; Deploy buttons in Mili Ship start runs too
- Every step as a collapsible group, failures as annotations, a summary at the end
- Cancel in GitHub stops the build; jobs wait while your Mac sleeps
Deploy release/1.4.0+52
Mili Ship · push by a teammate · self-hosted
- Checkout release/1.4.0+523s
- Resolve version1s
- Install dependencies38s
- Android · shorebird release4m 12s
- Android · publish to Google Play (internal)21s
- iOS · archive5m 48s
- iOS · upload to App Store Connect52s
Shipped 1.4.0 (52)
Google Play: versionCode 52 → internal · App Store Connect: in TestFlight
Compare
A fastlane and hosted-CI alternative for small teams
If you ship from one Mac anyway, you don’t need to rent another one — or maintain a Fastfile.
Swipe the table sideways to compare →
| Mili Ship | Hosted mobile CI | fastlane scripts | |
|---|---|---|---|
| Where builds run | Your Mac | The provider’s Macs | Wherever you set it up |
| Cost | Free, open source | Per build minute or plan | Free + your CI costs |
| Setup | Guided wizard that reads your repo | YAML + uploaded secrets | Ruby, Fastfile, plugins |
| Signing keys stay with you | |||
| Flutter, Shorebird, React Native, Expo | Via plugins | ||
| Runs visible in GitHub Actions | Some providers | If you wire it up | |
| Many builds in parallel | One Mac, one at a time | Depends on your CI |
FAQ
Questions, answered
Ship your next release with a git tag
Free and open source. Your Mac, your keys, your pipeline.