Install Groups
Control which Android builds can see updates for each other using install groups.
This feature is available only if you're in the Early Adopter program. Features available to Early Adopters are still in-progress and may have bugs. We recognize the irony.
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:
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.ktssentry {
distribution {
enabled = true
installGroups.set(setOf("alpha", "staging"))
}
}
Pass the install_groups parameter:
Fastfilesentry_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:
- Upload: Passes
--install-groupflags to sentry-cli so the build is tagged on the server. - Embed: Writes the groups to
sentry-distribution.propertiesinside the APK (asio.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:
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.
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").