Install Groups

Control which Android builds can see updates for each other using install groups.

Install groups let you tag builds with one or more group names to control update visibility between builds. See the product documentation for a full explanation of how install groups work.

Pass --install-group one or more times:

Copied
sentry-cli build upload app.apk \
  --org your-org \
  --project your-project \
  --build-configuration Release \
  --install-group alpha \
  --install-group staging

Set installGroups in the distribution block:

build.gradle.kts
Copied
sentry {
  distribution {
    enabled = true
    installGroups.set(setOf("alpha", "staging"))
  }
}

Pass the install_groups parameter:

Fastfile
Copied
sentry_upload_build(
  org_slug: 'your-org',
  project_slug: 'your-project',
  apk_path: 'path/to/app.apk',
  build_configuration: 'Release',
  install_groups: ['alpha', 'staging']
)

When you use the Gradle plugin's installGroups config, it does two things:

  1. Upload: Passes --install-group flags to sentry-cli so the build is tagged on the server.
  2. Embed: Writes the groups to sentry-distribution.properties inside the APK (as io.sentry.distribution.install-groups-override). The Auto-Update SDK reads this value at runtime and sends the groups as query parameters when checking for updates.

The server then only returns builds whose install groups overlap with the ones sent by the SDK.

This means a single installGroups config line controls both which groups the build is tagged with and which updates the app will see — no extra runtime setup needed.

If you need to change the install groups at runtime (for example, based on a feature flag or user setting), you can override them via SentryOptions:

Copied
SentryAndroid.init(context) { options ->
    options.distribution.installGroups = setOf("beta", "internal")
}

This overrides the groups embedded by the Gradle plugin for update checks only — it does not change the groups the build was uploaded with.

Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").