Quick start
This guide takes an app from nothing to a build in production. In the examples, https://<domaine-de-l-app> is the address of your Releo instance and <app-id> the ID of an app.
1. Create your account
Section titled “1. Create your account”On Releo Cloud, open https://<domaine-de-l-app>/signup, enter your name, email and password, then confirm your email with the link you receive. Your account comes with its own organization, on the Free plan.
2. Connect the stores
Section titled “2. Connect the stores”Releo talks to the stores with credentials that you create in your Apple and Google accounts. You save them once in Administration → Store credentials; they are encrypted and never shown again. The same steps are built into the add dialogs of the web app.
App Store Connect API key
Section titled “App Store Connect API key”-
Open App Store Connect → Users and Access → Integrations → App Store Connect API, tab Team Keys. The first time, the Account Holder must click Request Access.
-
Click + (Generate API Key), name it Releo and choose the App Manager access (needed to upload, manage TestFlight and submit for review).
-
Download the
AuthKey_XXXXXXXXXX.p8file. Apple lets you download it only once. -
In Releo, add an App Store Connect API key: copy the Key ID (key row) and the Issuer ID (shown above the keys table), then pick the
.p8file.
Individual keys (Users and Access → your profile) also work: choose “Individual”, there is no Issuer ID.
Google Play service account
Section titled “Google Play service account”-
In Google Cloud Console, pick or create a project, then enable the Google Play Android Developer API.
-
Go to IAM & Admin → Service accounts → Create service account (name: releo). No Google Cloud role is needed.
-
Open the account → Keys → Add key → Create new key → JSON. Keep the downloaded file.
-
In Play Console → Users and permissions, Invite new user with the service account email (
…@….iam.gserviceaccount.com). Under App permissions, add your apps with:- Release to production, exclude devices, and use Play App Signing
- Release apps to testing tracks
- Manage testing tracks and edit tester lists
Send the invitation.
-
In Releo, add a Google Play service account and paste the content of the JSON key (or pick the file).
Click Test on each credential: for Apple, Releo lists the apps the key can see; for Google, it checks the key, then its access to each linked app. Permission changes in Play Console can take a few minutes to apply.
3. Add the app
Section titled “3. Add the app”In Apps → New app, enable iOS, Android or both:
- iOS: the Bundle identifier, the App Store Connect app ID (the numeric Apple ID shown in App Store Connect → your app → App Information) and the App Store Connect API key.
- Android: the Package name (
applicationId) and the service account.
The other settings are optional and can wait: TestFlight groups, store locales of the release notes, LLM and git providers for generated notes, members.
4. Upload a first build
Section titled “4. Upload a first build”Releo finds the app from the bundle ID or the package name inside the binary. Pick the way that suits you:
Open the app and drop the .ipa or .aab on the upload area (or click it to browse). The build appears in the list right away.
The releo CLI is installed from a checkout of the Releo repository (Node 22.12+ and pnpm):
git clone https://<git-host>/<owner>/<repository>.git && cd <repository>pnpm install && pnpm --filter @releo/cli buildnpm install -g ./apps/cliSign in once: the command opens the browser, where you check the code and authorize the CLI.
releo login --url https://<domaine-de-l-app>Then upload, for instance after a Flutter build:
flutter build ipareleo builds create --file build/ios/ipa/*.ipa --commit "$(git rev-parse HEAD)"
flutter build appbundlereleo builds create --file build/app/outputs/bundle/release/app-release.aab --commit "$(git rev-parse HEAD)"Create an API key in My settings → API keys with the Upload builds scope (add Promote builds to promote from CI too). Store the instance address in a RELEO_URL variable and the key in a RELEO_TOKEN secret. With GitHub Actions:
- name: Ship to TestFlight run: | curl --fail-with-body -X POST "${{ vars.RELEO_URL }}/api/v1/builds" \ -H "Authorization: Bearer ${{ secrets.RELEO_TOKEN }}" \ -F commit="${{ github.sha }}" \ -F file=@build/ios/ipa/App.ipaThe CLI also reads RELEO_URL and RELEO_TOKEN: in CI, no login is needed.
Send the exact commit you built (--commit or -F commit=): Releo uses it to list the commits of the release notes.
5. Follow and promote the build
Section titled “5. Follow and promote the build”A build goes through uploaded → pushing → processing (iOS, while Apple processes it) → testing. It is then on TestFlight or on the Google Play internal track, with its tester notes. If something fails, the build shows the error and can be retried.
Once it is in testing, promote it with Promote to production on the build page, or from the CLI:
id=$(releo builds create --file build/ios/ipa/*.ipa --commit "$(git rev-parse HEAD)" | jq -r .id)releo builds get "$id" | jq -r .status # testing
releo builds promote "$id" --release-mode manual # iOS: submit for review (or after_approval)releo builds release "$id" # iOS in manual mode, once Apple approvesreleo builds promote "$id" --track production --rollout 0.2 # Android: 20% staged rollout- iOS: Releo creates the App Store version, attaches the build, sets “What’s New” in every locale and submits it for review. In manual mode, release it with Release now once Apple approves; with after_approval, Apple releases it automatically.
- Android: the build is promoted from the internal track to production with the rollout you chose. Google then reviews it; follow its publication in Play Console.
For apps on both platforms, Release iOS + Android on the app page promotes one build of each with release notes written once.
Next steps
Section titled “Next steps”- Generated release notes: add an LLM provider and a git provider in Administration, then pick them in the app settings.
- Public pages, team roles, single sign-on and the full API and CLI reference: see the interactive API documentation at
https://<domaine-de-l-app>/docs.