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 keyLD_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.