Search…
Integrate the VPN SDK
Integrate the VPN SDK into your application

Prerequisites

Get Started

Integrate the iOS SDK

To gain access to the iOS SDK and iOS sample app providing a reference for integrating the SDK, please contact us..
Apple Macs running on Apple Silicon are currently not supported. This means that iOS simulators on these machines are currently not supported.
Use either a real device, or an Intel Mac system for Sudo Platform VPN application development.
It is recommended to use a real iOS device as the simulator does not support VPN configurations.

Client Initialization

When setting up, ensure that you include a PersonalVPNentitlement capability on the application id.
To instantiate a client in your application, add the following
Swift
1
import SudoVPN
2
​
3
let userClient = // ... see "Users" docs
4
​
5
do {
6
let vpnClient = DefaultSudoVPNClient(userClient: userClient)
7
} catch {
8
// Handle initialization error. An error might be thrown due to invalid
9
// or missing configuration file.
10
}
Copied!
You only need one client instance for a given user per device. Instantiating multiple clients with the same configuration and using them at the same time may cause unexpected runtime errors to occur.

Client Preparation

To ensure that the correct data is returned from API calls in the iOS client, please ensure that the prepare method is called.
This method must be called once after the following sequence **has occurred: registration, sign in, and redeem entitlements.** This method must be called on each initialized VPN Client.
To call the prepare method:
1
vpnClient.prepare { result in
2
switch result {
3
case .success:
4
// Handle success result
5
case .failure(let error):
6
// Handle failure result
7
}
Copied!

Integrate the Android SDK

The Android SDK is compatible with Android 6 (API level 23) and above.
To gain access to the Android SDK and Android sample app providing a reference for integrating the SDK, please contact us.

Client Initialization

In order to instantiate a VPN client, make sure you have followed instructions for Getting Started and User SDK (see Prerequisities above)
To instantiate a client in your application, add the following:
Kotlin
1
val userClient = // ... see "Users" docs
2
​
3
val vpnClient = SudoVPNClient.builder()
4
.setContext(appContext)
5
.setSudoUserClient(userClient)
6
.build()
Copied!
You only need one client instance for a given user per device. Instantiating multiple clients with the same configuration and using them at the same time may cause unexpected runtime errors to occur.

Entitlement Redemption

Before VPN SDK APIs can be called, the user must be entitled. To ensure the user is entitled first call the redeemEntitlements API in the Sudo Entitlements SDK.
A user's entitlement to use the VPN service can be confirmed by calling the getEntitlementsForVPN API in the VPN SDK. It can take a small amount of time for entitlement information to propagate to the VPN service after entitlements are redeemed, so this API can can be used to poll the VPN service to verify this propagation has completed.
Last modified 21d ago