bedrock
Docs
Sign in

A full example

One real app, start to finish: sign in, link the project, upload a signing key, set a production env var and a secret, then ship a signed release build.

The scenario

An existing Expo project called Acme, package id com.acme.app. It already has a release keystore, and the release build needs to talk to a production API URL and a secret analytics key. The CLI is already installed.

1. Sign in

bedrock login

Opens a browser to sign in with GitHub, then waits for approval. First-time sign-in prompts you to create an organization.

2. Link the project

From the root of the Acme project:

bedrock init

A wizard picks (or creates) an organization, project, and app, then writes bedrock.json linking this directory to that app. Every command below reads from it.

3. Upload the signing key

bedrock signing upload --keystore ./release.keystore --alias upload

Prompts interactively for the keystore and key passwords, they're never accepted as flags or arguments, so they never land in shell history. Confirm it landed:

bedrock signing list

Shows the alias and fingerprint. This key is now reused for every future build of this app; you only upload it once.

4. Set the release config

A plain value for the production API URL:

bedrock env set API_URL=https://api.acme.com --profile release

A secret, prompted interactively instead of taken as an argument:

bedrock env set ANALYTICS_KEY --secret --profile release

Confirm both are set:

bedrock env list --profile release

API_URL shows its real value, ANALYTICS_KEY prints as (secret). It can be rotated or deleted, but never read back.

5. Build

A signed Android App Bundle for the Play Store:

bedrock build --profile release --aab

Opens a full-screen view: a sidebar of builds next to a live log pane for whichever one is selected, and prints a dashboard link so you can watch from the browser instead. It picks up the keystore and env vars from the previous two steps automatically, nothing else to pass in.

6. Get the artifact

Check on a build without watching it live:

bedrock build status <id>
bedrock build logs <id>

When the build finishes, its output includes a shareable download link for the signed .aab, ready to upload to the Play Store.

See also

CLI commands for every flag, or Security for exactly how the keystore and secrets are protected.