iOS 9 ベータ版のリリース以降、Apple は NetworkExtension.framework を開いて、開発者がカスタム プロトコル VPN クライアントをデバイスに実装できるようにしました。
次のコードでカスタマイズされた VPN に接続しようとしたとき
let providerProtocol = NETunnelProviderProtocol()
providerProtocol.serverAddress = "example.com"
let manager = NETunnelProviderManager()
manager.protocolConfiguration = providerProtocol
manager.enabled = true
manager.saveToPreferencesWithCompletionHandler({ error in
guard error == nil else {
print("saveToPreferencesWithCompletionHandler \(error)")
return
}
do {
try manager.connection.startVPNTunnel()
} catch {
print("startVPNTunnel \(error)")
}
})
で失敗しますstartVPNTunnel Error Domain=NEVPNErrorDomain Code=1 "(null)"