Associate your native Android or iOS app with its relying party domain and configure passkeys in the OwnID Console.
Passkeys require a verified association between your native app and its relying party domain. Configure the platform association file, app signing, and the OwnID Console before adding an authentication or enrollment flow.
OwnID Android SDK supports API 23+, but Android passkeys require API 28+.
OwnID iOS SDK supports iOS 13+, but passkeys require iOS 16+.
The endpoint must be public over HTTPS, return HTTP 200 with a JSON content type, and must not redirect. Allow automated retrieval of /.well-known/assetlinks.json; if the domain uses robots.txt, make sure it does not block /.well-known/.
Add an entry for every application ID and SHA-256 signing certificate that should use passkeys, including relevant debug, release, and product-flavor builds.You can inspect a keystore certificate with:
OwnID uses Apple’s AuthenticationServices framework for passkey creation and authentication.
1
Add the Associated Domains capability
In Xcode, open your app target, select Signing & Capabilities, and add Associated Domains. Add the relying party domain without a protocol or path:
webcredentials:<relying-party-domain>
Associated Domains capability configured for web credentials
Enable Associated Domains for the matching App ID in Apple Developer as well. If the app uses manual signing, regenerate and install its provisioning profiles after enabling the capability.
The endpoint must be public over HTTPS, return HTTP 200 with a JSON content type, must not redirect, and its uncompressed content must stay at or below 128 KB.
Add every app target that should use passkeys. Each <APP_ID_PREFIX>.<BUNDLE_ID> value must match the signed app’s application-identifier entitlement.The App ID prefix is often your Apple Team ID, but it can differ. Use the prefix from the signed app or provisioning profile.
The association files must be publicly accessible in every environment where passkeys are tested or used. The endpoints must not require a password, Basic Auth, SSO, cookies, VPN access, mTLS, an IP allowlist, or an interactive WAF or bot-protection challenge.
Verify the association files on the exact HTTPS host used as the relying party domain.
Android
iOS
Fetch the association file directly without following redirects:
Returns HTTP 200 with Content-Type: application/json
Does not redirect
Returns valid JSON rather than an HTML login or error page
Is accessible from a public network without authentication or VPN access
Allows automated retrieval and is not blocked by robots.txt
Confirm that the Android application ID and certificate fingerprints match the installed build and the OwnID Console configuration.Validate the hosted file with Google’s Statement List Generator and Tester. Select Credential Sharing as the relation type.
Fetch the association file directly without following redirects:
Association files may be cached by your hosting provider, CDN, and the platform verification services. Updating the file on the origin server does not guarantee that Android or Apple devices receive the new version immediately.Inspect the response headers for each association file:
Review Cache-Control, Age, Expires, ETag, and Last-Modified. Avoid long cache lifetimes, such as one week, if you expect to update the association files. A long max-age can keep an earlier version valid after the origin file has changed.
Google Digital Asset Links determines statement validity from the underlying data TTL, subject to implementation limits. The Digital Asset Links API returns maxAge, which indicates how much longer its result should be considered valid.
Apple’s CDN normally requests the apple-app-site-association file within 24 hours. Devices check for updates approximately once per week after installation. Apple does not provide manual cache invalidation. See Supporting associated domains.
After an update, first confirm that the public endpoint returns the new file and review its current cache headers.For complete platform setup and troubleshooting, see the Android SDK passkey guide or iOS SDK passkey guide.
Was this page helpful?
⌘I
Assistant
Responses are generated using AI and may contain mistakes.