Table of Contents

Class VpnHoodIosApp

Namespace
VpnHood.AppLib.App.Ios
Assembly
VpnHood.AppLib.App.Ios.dll

Provides the app on iOS, from the init params of every platform and the two iOS facts. The Network Extension is a binary of its own and never runs it.

public class VpnHoodIosApp : Singleton<VpnHoodIosApp>
Inheritance
VpnHoodIosApp
Inherited Members

Methods

Dispose(bool)

Releases the instance; with disposing and when it is the registered one, unregisters it.

protected override void Dispose(bool disposing)

Parameters

disposing bool

true when called from Dispose().

Init(IosInitParams)

Starts the app, once; a second call gives the app started already.

public static VpnHoodIosApp Init(IosInitParams initParams)

Parameters

initParams IosInitParams

The init params.

Returns

VpnHoodIosApp

The app.

Remarks

It keeps what must not travel with a backup in a folder beside the storage, which it marks for iOS not to back up; a mark that cannot be set is logged. On tvOS, which may empty every folder an app writes, it keeps the storage in the app's defaults. An ad provider that names countries both to include and to exclude fails the start.

Exceptions

ArgumentNullException

The init params' app name is null.

OverflowException

A duration in a built-in access key is out of range.

InvalidDataException

A built-in access key decodes to JSON null.

JsonException

A built-in access key holds no valid access key.

NotSupportedException

A built-in access key's version is not one the app reads.

FormatException

A built-in access key is no valid Base64, or an endpoint or a duration in it is not valid.

ArgumentException

The init params' app name is empty.

InvalidOperationException

The init params name no storage folder, or an App Group without a container, as where the entitlements lack it; the platform has no local app data folder; or the app's storage has no parent folder.