Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions docs/platforms/android/build-distribution/install-groups.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: Install Groups
sidebar_order: 20
description: Control which Android builds can see updates for each other using install groups.
---

<Include name="feature-available-for-user-group-early-adopter" />

Install groups let you tag builds with one or more group names to control update visibility between builds. See the [product documentation](/product/build-distribution/#install-groups) for a full explanation of how install groups work.

## Uploading With Install Groups

### Sentry CLI

Pass `--install-group` one or more times:

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

### Gradle Plugin

Set `installGroups` in the `distribution` block:

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

```groovy {filename:build.gradle}
sentry {
distribution {
enabled = true
installGroups = ["alpha", "staging"]
}
}
```

### Fastlane Plugin

Pass the `install_groups` parameter:

```ruby {filename:Fastfile}
sentry_upload_build(
org_slug: 'your-org',
project_slug: 'your-project',
apk_path: 'path/to/app.apk',
build_configuration: 'Release',
install_groups: ['alpha', 'staging']
)
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: Install Groups
sidebar_order: 20
description: Control which iOS builds can see updates for each other using install groups.
---

<Include name="feature-available-for-user-group-early-adopter" />

Install groups let you tag builds with one or more group names to control update visibility between builds. See the [product documentation](/product/build-distribution/#install-groups) for a full explanation of how install groups work.

## Uploading With Install Groups

### Sentry CLI

Pass `--install-group` one or more times:

```bash
sentry-cli build upload app.xcarchive \
--org your-org \
--project your-project \
--build-configuration Release \
--install-group alpha \
--install-group staging
```

### Fastlane Plugin

Pass the `install_groups` parameter:

```ruby {filename:Fastfile}
sentry_upload_build(
org_slug: 'your-org',
project_slug: 'your-project',
xcarchive_path: 'path/to/YourApp.xcarchive',
build_configuration: 'Release',
install_groups: ['alpha', 'staging']
)
```
23 changes: 23 additions & 0 deletions docs/product/build-distribution/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,29 @@ Below is the metadata included in your build, regardless of the platform.

<Include name="size-analysis/upload-metadata" />

## Install Groups

Install groups let you tag builds with one or more group names to control update visibility. When a device checks for updates, you can provide a list of install groups — only builds that share at least one install group with this list will be returned as available updates.

This is useful when you have multiple distribution channels (for example, separate branches, teams, or rollout stages) and want to prevent builds from one channel from being offered as updates to another.

### How It Works

When you upload a build, you can assign one or more install groups to it. If the Auto-Update SDK is provided install groups, it only returns builds that have overlapping groups.

Matching requires two builds to have a non-empty intersection of their install groups. For example, a build tagged `["alpha", "staging"]` will see updates from a build tagged `["alpha", "beta"]` because both share `alpha`.

### Use Cases
Comment on lines +38 to +40
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The documentation states users can provide install groups when checking for updates, but the Android and iOS SDK examples show no such parameter, creating a contradiction.
Severity: MEDIUM

Suggested Fix

Align the documentation with the actual SDK functionality. If the SDKs support passing install groups, update the Android and iOS documentation and code examples to show how. If they do not, remove the statement from docs/product/build-distribution/index.mdx that claims users can provide install groups when checking for updates.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: docs/product/build-distribution/index.mdx#L38-L40

Potential issue: The product documentation at
`docs/product/build-distribution/index.mdx` states that when a device checks for
updates, a developer "can provide a list of install groups". However, the corresponding
SDK documentation for both Android and iOS does not show a way to pass this list. The
Android example uses `checkForUpdateBlocking()` with no parameters, and the iOS
`CheckForUpdateParams` object does not include a field for install groups. This
discrepancy will lead developers to believe a feature is available when the SDKs do not
expose it, causing confusion and incorrect implementation attempts.

Did we get this right? 👍 / 👎 to inform future reviews.


- **Branch-based testing**: Tag CI builds with the branch name so developers only receive updates from their own branch.
- **Staged rollouts**: Use groups like `"alpha"`, `"beta"`, and `"internal"` to control which teams receive which builds.
- **Team separation**: Give each team its own install group so they only see builds relevant to them.

For platform-specific setup instructions, see:

- [Android Install Groups](/platforms/android/build-distribution/install-groups/)
- [iOS Install Groups](/platforms/apple/guides/ios/build-distribution/install-groups/)

## Downloading Builds

<Include name="build-distribution/download" />
Expand Down
1 change: 1 addition & 0 deletions includes/size-analysis/upload-metadata.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ We use build metadata to organize builds in the UI and ensure correct comparison
| `pr-number` | Pull request number |
| `head-ref` | Branch or tag name |
| `base-ref` | Base branch name |
| `install-group` | [Install group(s)](/product/build-distribution/#install-groups) to control update visibility between builds. Can be specified multiple times |

\* _required field_
Loading