OwnID iOS SDK helps apps add passkey-first authentication, account verification, and passkey enrollment while keeping the app in control of its users, sessions, and identity-provider setup.
Use the smallest SDK that covers the flow or feature your app needs.
| Add | Provides |
|---|---|
Core SDKOwnIDCore |
SDK configuration, providers, built-in Sign in with Apple support, Elite Flow, Headless, Passkey Enrollment, WebBridge, and passkey authentication flows. |
SwiftUI SDKOwnIDSwiftUI |
Boost widgets, SDK-provided SwiftUI operation UI, app-hosted operation UI, themes, colors, and reusable UI components. Depends on Core. |
Both SDK products require:
- iOS 13.0+
- Swift 6
- Xcode 16.0+
Add the package:
dependencies: [
.package(url: "https://github.com/OwnID/ownid-ios-sdk.git", from: "<latest-version>")
]Then add the product your app target uses.
Core SDK:
.product(name: "OwnIDCore", package: "OwnID")SwiftUI SDK:
.product(name: "OwnIDSwiftUI", package: "OwnID")Note
OwnIDSwiftUI depends on OwnIDCore. Add OwnIDCore separately only when your app target imports both modules directly.
CocoaPods
For CocoaPods-only apps, use a pinned public git tag as a compatibility fallback.
target "YourApp" do
pod "OwnIDCore",
:git => "https://github.com/OwnID/ownid-ios-sdk.git",
:tag => "<version>"
endIf your app uses OwnIDSwiftUI, declare both pods from the same tag:
target "YourApp" do
pod "OwnIDCore",
:git => "https://github.com/OwnID/ownid-ios-sdk.git",
:tag => "<version>"
pod "OwnIDSwiftUI",
:git => "https://github.com/OwnID/ownid-ios-sdk.git",
:tag => "<version>"
endOwnID uses Apple's AuthenticationServices framework for passkey creation and authentication. Platform passkeys work on iOS 16 and higher.
Passkeys require your app and relying party domain to be associated with Apple's webcredentials service.
Use the same relying party domain that OwnID uses for passkey requests.
In Xcode, add the Associated Domains capability to the app target, then add:
webcredentials:<relying-party-domain>
Host an Apple App Site Association file at:
https://<relying-party-domain>/.well-known/apple-app-site-association
The file must be publicly available over HTTPS, return HTTP 200, use a JSON content type, avoid redirects, stay under 128 KB, and have no .json extension.
{
"webcredentials": {
"apps": [
"<APP_ID_PREFIX>.<BUNDLE_ID>"
]
}
}Add each app target that should use passkeys as <APP_ID_PREFIX>.<BUNDLE_ID>. This value must match the signed app's application-identifier entitlement. The App ID prefix is usually the Apple Team ID; if it differs, use the prefix from the signed app or provisioning profile.
See Apple's Supporting associated domains and Associated Domains Entitlement for the platform requirements and validation behavior.
- Install the SDK for your flow or feature.
- Enable Passkeys as baseline SDK setup.
- Configure OwnID before using the SDK.
- Register providers required by the OwnID functionality and identity systems your app uses.
Implement app-specific providers in your app; copy source-only helpers from
Providers/only when the Providers guide calls for them.
After setup, choose the integration path that matches the screen or user journey you are building.
| App need | Use | SDK product | Start with |
|---|---|---|---|
| Add OwnID to an existing native login screen | Boost Login Widget | SwiftUI SDK | Boost Flow |
| Add create-passkey to account creation | Boost Create Passkey Widget | SwiftUI SDK | Boost Flow |
| Use hosted OwnID authentication UI in the app | Elite Flow | Core SDK | Elite Flow |
| Build fully custom native authentication UI | Headless | Core SDK | Headless |
| Add a passkey for a signed-in user | Passkey Enrollment | Core SDK | Passkey Enrollment |
Connect OwnID Web SDK inside an app WKWebView |
WebBridge | Core SDK | WebBridge |
Tip
Migrating from OwnID SDK version 3? Start with Migration from Version 3 to Version 4.
The full documentation map is in Documentation.
- DemoBase shows standard SDK setup, Boost Flow, Elite Flow, Headless, Passkey Enrollment, and example identity-provider wiring.
- DemoAdvanced shows customized Boost widgets, app-hosted operation UI, low-level API and operation scenarios, Headless, and Google provider wiring.
These apps are examples. Use public SDK source, published products, and documentation as the integration contract.
See Data Safety for SDK data handling notes.
For integration help, contact support@ownid.com.
This SDK is distributed under the Apache 2.0 license.