Ubriot Docs

Quickstart

Install the Ubriot CLI, create your app, add Apple credentials and ship your first build to TestFlight.

From an empty terminal to a build processing in TestFlight. The first app takes about five minutes; every app after that is two commands.

1. Install and log in

The CLI needs Node.js 18 or newer.

npm install -g ubriot
ubriot login

ubriot login asks for the email and password of your Ubriot account. ubriot whoami shows who is logged in and ubriot logout clears the saved session.

2. Create your app

ubriot apps create \
  --name "My App" --slug myapp \
  --repo https://github.com/you/yourrepo.git --branch main \
  --ios-bundle com.you.myapp

In a monorepo, point Ubriot at the app folder with --expo-project-root apps/mobile. Add --android-id com.you.myapp for Android. For a private repository, upload a GitHub token as described in Credentials.

3. Add Apple credentials (first app only)

Two uploads, once per Apple developer account. Every future app reuses them.

Upload the App Store Connect API key (.p8) from App Store Connect, under Users and Access, Integrations:

ubriot credentials upload-asc-key --app myapp --name "ASC Key" \
  --key-p8 AuthKey_XXXX.p8 --key-id XXXX --issuer-id YYYY

Upload the distribution certificate (.p12) exported from Keychain or the Apple Developer portal:

ubriot credentials upload-ios-cert --app myapp --name "Distribution Cert" \
  --p12 dist.p12 --p12-password <password> --team-id ZZZZ

4. Ship

ubriot ship ios

Run it from the app folder: without --app, Ubriot uses the app whose slug matches expo.slug in that folder's app.json. Anywhere else, pass --app myapp.

Signing is provisioned automatically: Ubriot registers your bundle ID with Apple and creates the App Store provisioning profile from your stored credentials. No Apple portal visit and no profile downloads. The command builds the binary, uploads it, and tracks App Store Connect until TestFlight marks the build valid.

Android is the same shape: upload your keystore and Google Play service account (see Credentials), then run ubriot ship android.

Every app after the first

ubriot apps create --name "Next App" --slug nextapp --ios-bundle com.you.nextapp --repo <url>
ubriot ship ios

Credentials are account-level and signing is auto-provisioned, so it is two commands end to end.

Next steps

  • Builds: profiles, store tracks, watching builds and retrying submissions.
  • OTA updates: ship JavaScript changes without a new build.
  • CLI reference: every command and option.

On this page