Skip to main content

Extension support (iOS)

About extension support

Our iOS extensions feature allows you to extend functionality for your customers beyond your app. This makes it possible for your end-users to authenticate outside of the hosting app, and make content available to them whilst interacting with other apps or parts of the system.

Several types of extensions are available, each of which are tied to a single, well-scoped area of the system.

You can explore the list of Apple-supported extensions in the Apple developer documentation.

Example use case

With the App Extensions feature, you can make it easier for your customers to add payment cards to their Apple Wallet.

  • They can add a bank card directly from their Apple Wallet, and authenticate with Encap through the extension, without having to switch apps to their bank or card issuer.
  • You can implement any of the existing in-app authentication methods such as a PIN or biometrics for this out-of-app authentication.

Limitations

  • The following Encap features are no supported in extensions:
    • App attestation.
    • Account recovery.
  • Offline authentication methods are not supported in extensions.
  • If you have multiple apps using the same shared group, then the secrets and files in that group are not deleted when the app is deleted. To delete them, you must delete all of the apps that use that group.
    Note

    If the app is ever reinstalled, Encap will ignore this data from the group and create new secrets.

Integration

To use this feature, you must:

  • Enable extension support (extensionSupport) in the Encap configuration (EncapConfig).
  • Set up App Groups and Keychain sharing in your app.
Want to learn more?

For more details, see the Extension support page in our iOS SDK documentation.

How it works

There is no direct communication between the app extension and the hosting app, therefore the registration data must be stored with Keychain Sharing enabled, and using App Groups to share files.

Note

Keychain Sharing and App Groups are only accessible by apps made by members of the same Apple development team.

You can read more about how App Extensions work in the Apple developer documentation.

New registrations

For new registrations, data is stored directly in the Shared Group and Shared Keychain when extensionSupport is enabled. No authentication is required before using this feature.

Existing registrations

For existing registrations, registration data must be migrated in order for the feature to work. An authentication is required to do this.

For registrations that have biometrics activated, the migration will only take place if a biometric authentication method is used.

After the migration, the host app and the app extension will have access to the same data.

Diagram showing shared data for existing registrations after migration

Diagram showing shared data for existing registrations after migration