> ## Documentation Index
> Fetch the complete documentation index at: https://primer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK lifecycle

> How Primer versions, supports, and deprecates its SDKs across iOS, Android, Web, and React Native.

This page describes the lifecycle of Primer's SDKs: the named stages every version moves through, what Primer commits to at each stage, and the rules that govern transitions. The policy applies to the **iOS**, **Android**, **Web**, and **React Native** SDKs, at the **major version** level — minor and patch versions inherit the stage of their parent major.

## Lifecycle stages

Every supported major version is in one of five stages at any given time.

| Stage               | Badge       | Minimum duration                             | What Primer commits to                                                                                                                        | Breaking changes                                          |
| ------------------- | ----------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Beta                | `BETA`      | No minimum                                   | Early access for design partners. The SDK may change without notice between Beta releases.                                                    | Allowed, documented in the changelog.                     |
| Release Candidate   | `RC`        | No minimum                                   | Support for RC testers. Feature-complete and intended for integration validation ahead of GA.                                                 | Unlikely, but possible.                                   |
| Generally Available | `GA`        | Until its successor reaches `GA`             | Full support: bug fixes, security patches, and new payment-method compatibility.                                                              | Avoided. A migration path is provided if one is required. |
| Supported           | `Supported` | At least 12 months after the `GA` stage ends | Critical security patches only. No new features.                                                                                              | None — the version is frozen.                             |
| End of Life         | `EOL`       | —                                            | No support and no patches. Version removed from public documentation. In-SDK runtime warning displayed. Package registries marked deprecated. | —                                                         |

## How versions move between stages

The lifecycle is **successor-anchored**, not calendar-anchored. A `GA` version does not expire on a fixed date. It transitions to `Supported` only when the next major version of the same SDK reaches `GA`, and it transitions to `EOL` no sooner than 12 months after that point.

```mermaid theme={"dark"}
gantt
    title Example timeline (illustrative)
    dateFormat YYYY-MM-DD
    axisFormat %b %Y

    section SDK v3
    Beta                           :v3b, 2025-01-01, 60d
    RC                             :v3rc, 2025-03-01, 30d
    GA                             :v3ga, 2025-04-01, 365d
    Supported (min. 12 months)     :crit, v3s, 2026-04-01, 365d

    section SDK v4
    Beta                           :v4b, 2025-11-01, 60d
    RC                             :v4rc, 2026-02-01, 30d
    GA                             :v4ga, 2026-04-01, 365d
```

## Current status

The table below shows the current stage of each supported major version. It is updated as versions transition between stages.

| SDK          | Major version | Stage       | Reference                                                                              |
| ------------ | ------------- | ----------- | -------------------------------------------------------------------------------------- |
| iOS          | v3.x          | `BETA`      | [iOS Primer Checkout reference](/sdk/ios-checkout/v3.0.0-beta/configuration/settings)  |
| iOS          | v2.x          | `GA`        | [iOS SDK v2 installation](/sdk/ios/v2.x.x/installation)                                |
| Android      | v3.x          | `BETA`      | [Android Primer Checkout installation](/sdk/android-checkout/v3.0.0-beta/installation) |
| Android      | v2.x          | `GA`        | [Android SDK v2 installation](/sdk/android/v2.x.x/installation)                        |
| Web          | v1.x          | `GA`        | [Web Primer Checkout reference](/sdk/primer-checkout-web/sdk-reference-overview)       |
| Web          | v2.x          | `Supported` | [Web SDK v2 overview](/sdk/web/v2.x.x/primer-checkout/overview)                        |
| React Native | v2.x          | `GA`        | [React Native SDK v2 installation](/sdk/react-native/v2.x.x/installation)              |

For the authoritative list of released versions within each major, see each SDK's [changelog](#related).

## Deprecation signals

Versions approaching or past `EOL` surface the following signals:

* **Package-registry deprecation flags** on npm, CocoaPods, Maven Central, and Swift Package Manager.
* **In-SDK runtime warnings** emitted from `Supported` versions onward.
* **Changelog and release-notes entries** at each stage transition.

These signals indicate lifecycle state but are not themselves the state. The authoritative stage for any major version is the one listed in [Current status](#current-status).

## Enforcement

Enforcement of the SDK lifecycle is **API-driven**, not SDK-side. Primer does not actively block or disable calls from `EOL` SDKs at the SDK layer.

* When an `EOL` SDK relies on an underlying API that is itself no longer supported, calls will stop working as that API reaches its own end of life (see [API lifecycle](/api-reference/get-started/api-lifecycle)). This is the expected enforcement path.
* When an `EOL` SDK relies on an API that remains supported, calls will continue to function. However, Primer offers no compatibility, security, or stability guarantees for `EOL` versions, and support tickets against them will not be accepted.

## Vocabulary

`Supported` is a specific lifecycle stage on this page, not a general adjective. A version in `GA` is actively supported, but it is not in the `Supported` stage. When referring to a version's state, prefer the badges — `GA`, `Supported`, `EOL` — over prose.

`Deprecated` is a signal Primer emits (via package-manager flags, release notes, and in-SDK runtime warnings); the underlying lifecycle state is still one of the five named stages above.

## Related

* [API lifecycle](/api-reference/get-started/api-lifecycle) — the same model applied to the Primer API.
* [iOS SDK changelog](/changelogs/ios-sdk)
* [Android SDK changelog](/changelogs/android-sdk)
* [Web Primer Checkout changelog](/changelogs/primer-checkout-sdk)
* [Web SDK changelog — v2](/changelogs/web-sdk)
* [React Native SDK changelog](/changelogs/react-native-sdk)
