Skip to main content

iOS SDK

In-app updates for your iOS builds.

Embed the AppGantry iOS SDK and your app can tell when a newer build has been distributed through AppGantry, then prompt the user and install it over the air. A few lines of Swift, no separate update service to run.

Read the SDK docs View on GitHub

What it does

Detect new builds

The SDK enrolls the install on first use and checks whether a newer build is available for the running app, comparing on the build number you already ship in your bundle.

Prompt, your way

Show the built-in SwiftUI update prompt with the release notes and app icon, or take the update information and drive your own UI. Mandatory updates hide the "Later" button automatically.

Install over the air

One call hands off to the iOS over-the-air installer. Need the bytes instead? Resolve the signed download URL or fetch the file yourself for non-iOS targets.

Install

Add the package with Swift Package Manager. In Xcode use File › Add Package Dependencies... and enter the repository URL, or add it to your own Package.swift:

dependencies: [
    .package(url: "https://github.com/AppGantry/iOS-SDK.git", branch: "main"),
],
targets: [
    .target(
        name: "YourApp",
        dependencies: [.product(name: "AppGantrySDK", package: "iOS-SDK")]
    ),
]

Requirements: iOS 16.0+ and Swift 5.9+. The SDK is in early development, so it is distributed from the main branch and its API may change before a tagged release. Watch the releases page for versioned builds.

Quick start

Configure the client with the app key and secret from your AppGantry channel, check for an update, and prompt the user to install it:

import AppGantrySDK

let updates = AppGantryUpdates(
    configuration: AppGantryConfiguration(
        baseURL: URL(string: "https://api.appgantry.com/sdk/v1")!,
        appKey: "your-app-key",
        appSecret: "your-app-secret"
    )
)

let info = try await updates.checkForUpdate()
if info.updateAvailable {
    let metadata = try await updates.appMetadata()
    try await updates.beginInstall(for: info)
    try await updates.reportInstall(releaseId: info.releaseId!, state: .installing)
}

The full integration guide, including the built-in prompt, the update-check lifecycle, token handling, and privacy details, lives in the SDK documentation.

Ship your next build with in-app updates.

The SDK talks to the same channels you already distribute through. Grab an app key from your channel settings and integrate in minutes.

Read the SDK docs View on GitHub