Skip to main content

E2EE iOS SDK Integration Guide

Overview of E2EE​

End-to-End Encryption (E2EE) adds an extra layer of security to your communications by encrypting the data transmitted between the server and client. The process begins with a key exchange where the client and server share keys for encrypting and decrypting messages. This exchange acts like a handshake and ensures that all subsequent communications are encrypted. Only the intended server and client are able to decrypt the messages.

Prerequisites​

  • IncdOnboarding variant including "-e2ee", eg. version "5.23.0-s-e2ee"

Integration​

  • If integrating through Cocoapods then no further actions are required.
  • If manually integrating: Add OpenSSL.xcframework to your project (should be Embedded & signed). In build settings for key LD_RUNPATH_SEARCH_PATHS add path @executable_path/Frameworks.

Steps to Enable E2EE in the SDK​

1. Set Up a Custom Server for E2EE​

Initialize the Welcome SDK with a custom API URL for E2EE as follows:

IncdOnboardingManager.shared.initIncdOnboarding(
url: url, // URL for regular non-encrypted API requests
e2eeURL: e2eeURL // URL for E2EE API requests
apiKey: apiKey)

2. Enable E2EE via IncdOnboardingSessionConfiguration:​

let sessionConfig = IncdOnboardingSessionConfiguration(e2eEncryptionEnabled: true, ...)

3. Start Onboarding​

Start Onboarding with the configuration created at the previous step.

  • Start onboarding by creating the flow and calling startOnboarding as explained here
  • Start onboarding sections as explained here