Skip to main content

Requirements

Before integrating the Seam Android SDK, confirm your project meets these requirements:
  • Compile SDK: 35
  • Kotlin: 2.1.0 or greater
  • Minimum Android SDK: Depends on the provider modules you include:
ModuleArtifact IDMinimum SDK
Core (required)seam-phone-sdk-android-coreAPI 24 (Android 7.0)
Salto KSseam-phone-sdk-android-saltoksAPI 24 (Android 7.0)
Salto Spaceseam-phone-sdk-android-saltospaceAPI 24 (Android 7.0)
Latchseam-phone-sdk-android-latchAPI 26 (Android 8.0)
Assa Abloyseam-phone-sdk-android-assaabloyAPI 28 (Android 9.0)
Your app’s minSdk must be set to the highest level required by any Seam module you include.
Including both assaabloy and latch, for example, requires minSdk = 28 because Assa Abloy sets the higher floor.

Installation

1

Request access to the Seam package registry

The SDK is distributed as a Maven package on GitHub Packages under the seampkg/seam-mobile-sdk repository.
  1. Contact your Seam representative to be added as a collaborator on the repository.
  2. Once added, go to your GitHub Developer Settings and navigate to Personal access tokens > Tokens (Classic).
  3. Click Generate new token (classic).
  4. Give the token a note and an expiration date.
  5. Select the read:packages scope.
  6. Click Generate token and copy the value — you will not be able to see it again.
2

Store your credentials in local.properties

Open (or create) local.properties at the root of your Android project and add your GitHub username and the token you just created:
# local.properties — DO NOT commit this file
seamUsername=YOUR_GITHUB_USERNAME
seamPat=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
local.properties should be listed in .gitignore. Never commit credentials to version control.
3

Configure the Maven repository in settings.gradle

Add a helper function and the GitHub Packages Maven repository to your settings.gradle.kts (or settings.gradle):
import java.util.Properties

fun getPropertyOrNull(propertyName: String): String? {
    val propertiesFile = file("local.properties")
    if (!propertiesFile.exists()) return null
    val properties = Properties()
    properties.load(propertiesFile.inputStream())
    return properties.getProperty(propertyName, null)
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {
            name = "GitHubPackages"
            url = uri("https://maven.pkg.github.com/seampkg/seam-mobile-sdk")
            credentials {
                username = getPropertyOrNull("seamUsername")
                password = getPropertyOrNull("seamPat")
            }
        }
    }
}
4

Add SDK dependencies to your app module

In your app module’s build.gradle.kts (or build.gradle), add core plus whichever provider modules your app requires:
val seamVersion = "1.9.39" // Replace with the latest version

dependencies {
    // Required
    implementation("co.seam:seam-phone-sdk-android-core:$seamVersion")

    // Add only the provider integrations you need
    implementation("co.seam:seam-phone-sdk-android-saltoks:$seamVersion")
    implementation("co.seam:seam-phone-sdk-android-saltospace:$seamVersion")
    implementation("co.seam:seam-phone-sdk-android-latch:$seamVersion")
    implementation("co.seam:seam-phone-sdk-android-assaabloy:$seamVersion")
}
Sync your project with Gradle after saving.

Quick Verification

Once the sync succeeds, verify the SDK is on the classpath by adding a temporary import to any Kotlin file:
import co.seam.core.api.SeamSDK
If Android Studio resolves the import without errors, the SDK is installed correctly.

Troubleshooting

  • Confirm seamUsername and seamPat are set correctly in local.properties.
  • Verify the PAT has the read:packages scope and has not expired.
  • Ensure you have been added as a collaborator on the seampkg/seam-mobile-sdk repository.
  • Confirm the maven { ... } block is inside dependencyResolutionManagement.repositories in settings.gradle.kts, not inside a module’s build.gradle.kts.
  • Double-check the artifact ID spelling (for example, seam-phone-sdk-android-core, not seam-android-core).
  • Try a fresh Gradle sync via File > Sync Project with Gradle Files.
If Gradle reports a manifest merger conflict about minSdkVersion, raise your app’s minSdk to match the highest value required by the Seam modules you have included. See the requirements table above.
The SDK requires Kotlin 2.1.0 or later. Check your project’s libs.versions.toml or build.gradle.kts and update the kotlin version entry accordingly.
For additional support, reach out in your dedicated Seam support Slack channel.

Next Steps

  • Quickstart — Initialize the SDK and perform your first unlock.
  • Architecture — How the SDK’s reactive model and offline caching work.
  • Error Handling — Handling SeamError and credential errors.