Skip to main content
Unlocking with SeamSDK uses proximity to communicate credentials to door readers. When a user initiates an unlock, the SDK performs scanning, error handling, and unlock events using Seam.shared.unlock(using:). Using this process involves the following steps:
  1. Retrieve available mobile credentials.
  2. Monitor for permission or credential errors. Unhandled errors are thrown as credentialErrors([SeamCredentialError]).
  3. Perform the unlock operation.
  4. Handle unlock status events.
  5. Cancel the unlock operation if needed.

1. Retrieve Mobile Credentials

Access the current credentials through the published credentials array on Seam.shared:

2. Monitor Credential Errors

Permission or setup issues appear in each credential’s errors property. Observe like this:
Note: The .errors array on credentials represents per-credential issues, though some issues may be repeated across several credentials (for example, bluetooth requirements). SDK- or credential-level errors (such as invalid token or expired credential) are thrown directly by methods like unlock(using:) because SeamError or SeamCredentialError and must be handled through do/catch.

3. Perform Unlock Operation

The call to Seam.shared.unlock(using:) may throw:
  • SeamError: For SDK-level issues (for example, invalid token, uninitialized SDK).
  • SeamCredentialError: For credential-specific issues (for example, expired credential, device not eligible). Ensure that you wrap the call in do/catch blocks to handle these errors.
Use Async/Await or Combine to initiate an unlock with a selected credential:

4. Handle Unlock Events

Handle each SeamUnlockEvent to update your UI and logic. Available events:
  • launched
    Unlock operation has started.
  • grantedAccess
    Access was granted by the lock.
  • timedOut
    Unlock operation timed out without success.
  • connectionFailed(debugDescription:)
    Unlock operation failed to connect; debugDescription may contain additional details.
Async/Await example:
Combine example:

5. Cancel the Unlock Operation

Stop scanning by canceling your active task or subscription.