NetworkExtension Changes for Swift
NetworkExtension
Added NEAppProxyFlow
Added NEAppProxyFlow.metaData
Added NEAppProxyFlow.openWithLocalEndpoint(_: NWHostEndpoint?, completionHandler: (NSError?) -> Void)
Added NEAppProxyProvider
Added NEAppProxyProvider.stopProxyWithReason(_: NEProviderStopReason, completionHandler: () -> Void)
Added NEAppProxyTCPFlow
Added NEAppProxyUDPFlow
Added NEAppRule
Added NEAppRule.matchDomains
Added NEDNSSettings
Added NEDNSSettings.domainName
Added NEDNSSettings.servers
Added NEFilterBrowserFlow
Added NEFilterControlProvider
Added NEFilterControlVerdict
Added NEFilterDataProvider
Added NEFilterDataProvider.handleOutboundDataCompleteForFlow(_: NEFilterFlow) -> NEFilterDataVerdict
Added NEFilterDataVerdict
Added NEFilterFlow
Added NEFilterFlow.URL
Added NEFilterManager
Added NEFilterManager.enabled
Added NEFilterNewFlowVerdict
Added NEFilterNewFlowVerdict.URLAppendStringVerdictWithMapKey(_: String) -> NEFilterNewFlowVerdict [class]
Added NEFilterProvider
Added NEFilterSocketFlow
Added NEFilterVerdict
Added NEFlowMetaData
Added NEHotspotHelper
Added NEHotspotHelperCommand
Added NEHotspotHelperResponse
Added NEHotspotNetwork
Added NEHotspotNetwork.BSSID
Added NEHotspotNetwork.secure
Added NEHotspotNetwork.SSID
Added NEIPv4Route
Added NEIPv4Settings
Added NEIPv4Settings.addresses
Added NEIPv6Route
Added NEIPv6Settings
Added NEIPv6Settings.addresses
Added NEPacketTunnelFlow
Added NEPacketTunnelProvider
Added NEPacketTunnelProvider.stopTunnelWithReason(_: NEProviderStopReason, completionHandler: () -> Void)
Added NEProvider
Added NEProvider.createUDPSessionToEndpoint(_: NWEndpoint, fromEndpoint: NWHostEndpoint?) -> NWUDPSession
Added NEProvider.defaultPath
Added NEProvider.wake()
Added NEProxyServer
Added NEProxyServer.address
Added NEProxyServer.password
Added NEProxyServer.port
Added NEProxyServer.username
Added NEProxySettings
Added NETunnelNetworkSettings
Added NETunnelProvider
Added NETunnelProviderManager
Added NETunnelProviderProtocol
Added NETunnelProviderSession
Added NETunnelProviderSession.sendProviderMessage(_: NSData, responseHandler: ((NSData?) -> Void)?) throws
Added NWBonjourServiceEndpoint
Added NWEndpoint
Added NWHostEndpoint
Added NWHostEndpoint.hostname
Added NWHostEndpoint.port
Added NWPath
Added NWPath.expensive
Added NWPath.status
Added NWPathStatus [enum]
Added NWPathStatus.Invalid
Added NWPathStatus.Satisfiable
Added NWPathStatus.Satisfied
Added NWPathStatus.Unsatisfied
Added NWTCPConnection
Added NWTCPConnection.cancel()
Added NWTCPConnection.endpoint
Added NWTCPConnection.error
Added NWTCPConnection.state
Added NWTCPConnection.viable
Added NWTCPConnectionAuthenticationDelegate.shouldEvaluateTrustForConnection(_: NWTCPConnection) -> Bool
Added NWTCPConnectionAuthenticationDelegate.shouldProvideIdentityForConnection(_: NWTCPConnection) -> Bool
Added NWTLSParameters
Added NWUDPSession
Added NWUDPSession.cancel()
Added NWUDPSession.currentPath
Added NWUDPSession.endpoint
Added NWUDPSession.state
Added NWUDPSession.viable
Added NWUDPSessionState [enum]
Added NWUDPSessionState.Failed
Added NWUDPSessionState.Ready
Added NEAppProxyErrorDomain
Added NEFilterErrorDomain
Added NEFilterFlowBytesMax
Added NEHotspotHelperHandler
Modified NEEvaluateConnectionRule
| Declaration | |
|---|---|
| From | class NEEvaluateConnectionRule : NSObject, NSSecureCoding, NSCoding, NSCopying {
init!(matchDomains domains: [AnyObject]!, andAction action: NEEvaluateConnectionRuleAction)
var action: NEEvaluateConnectionRuleAction { get }
var matchDomains: [AnyObject]! { get }
var useDNSServers: [AnyObject]!
@NSCopying var probeURL: NSURL!
} |
| To | class NEEvaluateConnectionRule : NSObject, NSSecureCoding, NSCoding, NSCopying {
init(matchDomains domains: [String], andAction action: NEEvaluateConnectionRuleAction)
var action: NEEvaluateConnectionRuleAction { get }
var matchDomains: [String] { get }
var useDNSServers: [String]?
@NSCopying var probeURL: NSURL?
} |
Modified NEEvaluateConnectionRule.init(matchDomains: [String], andAction: NEEvaluateConnectionRuleAction)
| Declaration | |
|---|---|
| From | init!(matchDomains domains: [AnyObject]!, andAction action: NEEvaluateConnectionRuleAction) |
| To | init(matchDomains domains: [String], andAction action: NEEvaluateConnectionRuleAction) |
| Declaration | |
|---|---|
| From | var matchDomains: [AnyObject]! { get } |
| To | var matchDomains: [String] { get } |
Modified NEEvaluateConnectionRule.probeURL
| Declaration | |
|---|---|
| From | @NSCopying var probeURL: NSURL! |
| To | @NSCopying var probeURL: NSURL? |
| Declaration | |
|---|---|
| From | var useDNSServers: [AnyObject]! |
| To | var useDNSServers: [String]? |
| Introduction | Raw Value Type | |
|---|---|---|
| From | iOS 8.1 | -- |
| To | iOS 8.0 | Int |
Modified NEOnDemandRule
| Declaration | |
|---|---|
| From | class NEOnDemandRule : NSObject, NSSecureCoding, NSCoding, NSCopying {
var action: NEOnDemandRuleAction { get }
var DNSSearchDomainMatch: [AnyObject]!
var DNSServerAddressMatch: [AnyObject]!
var interfaceTypeMatch: NEOnDemandRuleInterfaceType
var SSIDMatch: [AnyObject]!
@NSCopying var probeURL: NSURL!
} |
| To | class NEOnDemandRule : NSObject, NSSecureCoding, NSCoding, NSCopying {
var action: NEOnDemandRuleAction { get }
var DNSSearchDomainMatch: [String]?
var DNSServerAddressMatch: [String]?
var interfaceTypeMatch: NEOnDemandRuleInterfaceType
var SSIDMatch: [String]?
@NSCopying var probeURL: NSURL?
} |
Modified NEOnDemandRule.DNSSearchDomainMatch
| Declaration | |
|---|---|
| From | var DNSSearchDomainMatch: [AnyObject]! |
| To | var DNSSearchDomainMatch: [String]? |
Modified NEOnDemandRule.DNSServerAddressMatch
| Declaration | |
|---|---|
| From | var DNSServerAddressMatch: [AnyObject]! |
| To | var DNSServerAddressMatch: [String]? |
Modified NEOnDemandRule.probeURL
| Declaration | |
|---|---|
| From | @NSCopying var probeURL: NSURL! |
| To | @NSCopying var probeURL: NSURL? |
Modified NEOnDemandRule.SSIDMatch
| Declaration | |
|---|---|
| From | var SSIDMatch: [AnyObject]! |
| To | var SSIDMatch: [String]? |
Modified NEOnDemandRuleAction [enum]
| Raw Value Type | |
|---|---|
| From | -- |
| To | Int |
Modified NEOnDemandRuleEvaluateConnection
| Declaration | |
|---|---|
| From | class NEOnDemandRuleEvaluateConnection : NEOnDemandRule {
var connectionRules: [AnyObject]!
} |
| To | class NEOnDemandRuleEvaluateConnection : NEOnDemandRule {
var connectionRules: [NEEvaluateConnectionRule]?
} |
| Declaration | |
|---|---|
| From | var connectionRules: [AnyObject]! |
| To | var connectionRules: [NEEvaluateConnectionRule]? |
Modified NEOnDemandRuleInterfaceType [enum]
| Declaration | Raw Value Type | |
|---|---|---|
| From | enum NEOnDemandRuleInterfaceType : Int {
case Ethernet
case WiFi
case Cellular
} | -- |
| To | enum NEOnDemandRuleInterfaceType : Int {
case Any
case Ethernet
case WiFi
case Cellular
} | Int |
Modified NEVPNConnection
| Declaration | |
|---|---|
| From | class NEVPNConnection : NSObject {
func startVPNTunnelAndReturnError(_ error: NSErrorPointer) -> Bool
func stopVPNTunnel()
var status: NEVPNStatus { get }
} |
| To | class NEVPNConnection : NSObject {
func startVPNTunnel() throws
func startVPNTunnelWithOptions(_ options: [String : NSObject]?) throws
func stopVPNTunnel()
var status: NEVPNStatus { get }
var connectedDate: NSDate? { get }
} |
| Declaration | |
|---|---|
| From | func startVPNTunnelAndReturnError(_ error: NSErrorPointer) -> Bool |
| To | func startVPNTunnel() throws |
Modified NEVPNError [enum]
| Declaration | Raw Value Type | |
|---|---|---|
| From | enum NEVPNError : Int {
case ConfigurationInvalid
case ConfigurationDisabled
case ConnectionFailed
case ConfigurationStale
} | -- |
| To | enum NEVPNError : Int {
case ConfigurationInvalid
case ConfigurationDisabled
case ConnectionFailed
case ConfigurationStale
case ConfigurationReadWriteFailed
case ConfigurationUnknown
} | Int |
Modified NEVPNIKEAuthenticationMethod [enum]
| Raw Value Type | |
|---|---|
| From | -- |
| To | Int |
Modified NEVPNIKEv2CertificateType [enum]
| Introduction | Raw Value Type | |
|---|---|---|
| From | iOS 8.0 | -- |
| To | iOS 8.3 | Int |
| Raw Value Type | |
|---|---|
| From | -- |
| To | Int |
Modified NEVPNIKEv2DiffieHellmanGroup [enum]
| Raw Value Type | |
|---|---|
| From | -- |
| To | Int |
Modified NEVPNIKEv2EncryptionAlgorithm [enum]
| Raw Value Type | |
|---|---|
| From | -- |
| To | Int |
Modified NEVPNIKEv2IntegrityAlgorithm [enum]
| Raw Value Type | |
|---|---|
| From | -- |
| To | Int |
Modified NEVPNManager
| Declaration | |
|---|---|
| From | class NEVPNManager : NSObject {
class func sharedManager() -> NEVPNManager!
func loadFromPreferencesWithCompletionHandler(_ completionHandler: ((NSError!) -> Void)!)
func removeFromPreferencesWithCompletionHandler(_ completionHandler: ((NSError!) -> Void)!)
func saveToPreferencesWithCompletionHandler(_ completionHandler: ((NSError!) -> Void)!)
var onDemandRules: [AnyObject]!
var onDemandEnabled: Bool
var localizedDescription: String!
var `protocol`: NEVPNProtocol!
var connection: NEVPNConnection! { get }
var enabled: Bool
} |
| To | class NEVPNManager : NSObject {
class func sharedManager() -> NEVPNManager
func loadFromPreferencesWithCompletionHandler(_ completionHandler: (NSError?) -> Void)
func removeFromPreferencesWithCompletionHandler(_ completionHandler: ((NSError?) -> Void)?)
func saveToPreferencesWithCompletionHandler(_ completionHandler: ((NSError?) -> Void)?)
var onDemandRules: [NEOnDemandRule]?
var onDemandEnabled: Bool
var localizedDescription: String?
var `protocol`: NEVPNProtocol?
var protocolConfiguration: NEVPNProtocol?
var connection: NEVPNConnection { get }
var enabled: Bool
} |
Modified NEVPNManager.connection
| Declaration | |
|---|---|
| From | var connection: NEVPNConnection! { get } |
| To | var connection: NEVPNConnection { get } |
| Declaration | |
|---|---|
| From | func loadFromPreferencesWithCompletionHandler(_ completionHandler: ((NSError!) -> Void)!) |
| To | func loadFromPreferencesWithCompletionHandler(_ completionHandler: (NSError?) -> Void) |
Modified NEVPNManager.localizedDescription
| Declaration | |
|---|---|
| From | var localizedDescription: String! |
| To | var localizedDescription: String? |
Modified NEVPNManager.onDemandRules
| Declaration | |
|---|---|
| From | var onDemandRules: [AnyObject]! |
| To | var onDemandRules: [NEOnDemandRule]? |
Modified NEVPNManager.protocol
| Declaration | Deprecation | |
|---|---|---|
| From | var `protocol`: NEVPNProtocol! | -- |
| To | var `protocol`: NEVPNProtocol? | iOS 9.0 |
| Declaration | |
|---|---|
| From | func removeFromPreferencesWithCompletionHandler(_ completionHandler: ((NSError!) -> Void)!) |
| To | func removeFromPreferencesWithCompletionHandler(_ completionHandler: ((NSError?) -> Void)?) |
| Declaration | |
|---|---|
| From | func saveToPreferencesWithCompletionHandler(_ completionHandler: ((NSError!) -> Void)!) |
| To | func saveToPreferencesWithCompletionHandler(_ completionHandler: ((NSError?) -> Void)?) |
| Declaration | |
|---|---|
| From | class func sharedManager() -> NEVPNManager! |
| To | class func sharedManager() -> NEVPNManager |
Modified NEVPNProtocol
| Declaration | |
|---|---|
| From | class NEVPNProtocol : NSObject, NSCopying, NSSecureCoding, NSCoding {
var serverAddress: String!
var username: String!
@NSCopying var passwordReference: NSData!
@NSCopying var identityReference: NSData!
@NSCopying var identityData: NSData!
var identityDataPassword: String!
var disconnectOnSleep: Bool
} |
| To | class NEVPNProtocol : NSObject, NSCopying, NSSecureCoding, NSCoding {
var serverAddress: String?
var username: String?
@NSCopying var passwordReference: NSData?
@NSCopying var identityReference: NSData?
@NSCopying var identityData: NSData?
var identityDataPassword: String?
var disconnectOnSleep: Bool
@NSCopying var proxySettings: NEProxySettings?
} |
Modified NEVPNProtocol.identityData
| Declaration | |
|---|---|
| From | @NSCopying var identityData: NSData! |
| To | @NSCopying var identityData: NSData? |
Modified NEVPNProtocol.identityDataPassword
| Declaration | |
|---|---|
| From | var identityDataPassword: String! |
| To | var identityDataPassword: String? |
Modified NEVPNProtocol.passwordReference
| Declaration | |
|---|---|
| From | @NSCopying var passwordReference: NSData! |
| To | @NSCopying var passwordReference: NSData? |
Modified NEVPNProtocol.serverAddress
| Declaration | |
|---|---|
| From | var serverAddress: String! |
| To | var serverAddress: String? |
Modified NEVPNProtocol.username
| Declaration | |
|---|---|
| From | var username: String! |
| To | var username: String? |
Modified NEVPNProtocolIKEv2
| Declaration | |
|---|---|
| From | class NEVPNProtocolIKEv2 : NEVPNProtocolIPSec {
var deadPeerDetectionRate: NEVPNIKEv2DeadPeerDetectionRate
var serverCertificateIssuerCommonName: String!
var serverCertificateCommonName: String!
var certificateType: NEVPNIKEv2CertificateType
var IKESecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters! { get }
var childSecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters! { get }
} |
| To | class NEVPNProtocolIKEv2 : NEVPNProtocolIPSec {
var deadPeerDetectionRate: NEVPNIKEv2DeadPeerDetectionRate
var serverCertificateIssuerCommonName: String?
var serverCertificateCommonName: String?
var certificateType: NEVPNIKEv2CertificateType
var useConfigurationAttributeInternalIPSubnet: Bool
var IKESecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters { get }
var childSecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters { get }
var disableMOBIKE: Bool
var disableRedirect: Bool
var enablePFS: Bool
var enableRevocationCheck: Bool
var strictRevocationCheck: Bool
} |
Modified NEVPNProtocolIKEv2.certificateType
| Introduction | |
|---|---|
| From | iOS 8.0 |
| To | iOS 8.3 |
| Declaration | |
|---|---|
| From | var childSecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters! { get } |
| To | var childSecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters { get } |
| Declaration | |
|---|---|
| From | var IKESecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters! { get } |
| To | var IKESecurityAssociationParameters: NEVPNIKEv2SecurityAssociationParameters { get } |
| Declaration | |
|---|---|
| From | var serverCertificateCommonName: String! |
| To | var serverCertificateCommonName: String? |
| Declaration | |
|---|---|
| From | var serverCertificateIssuerCommonName: String! |
| To | var serverCertificateIssuerCommonName: String? |
Modified NEVPNProtocolIPSec
| Declaration | |
|---|---|
| From | class NEVPNProtocolIPSec : NEVPNProtocol {
var authenticationMethod: NEVPNIKEAuthenticationMethod
var useExtendedAuthentication: Bool
@NSCopying var sharedSecretReference: NSData!
var localIdentifier: String!
var remoteIdentifier: String!
} |
| To | class NEVPNProtocolIPSec : NEVPNProtocol {
var authenticationMethod: NEVPNIKEAuthenticationMethod
var useExtendedAuthentication: Bool
@NSCopying var sharedSecretReference: NSData?
var localIdentifier: String?
var remoteIdentifier: String?
} |
Modified NEVPNProtocolIPSec.localIdentifier
| Declaration | |
|---|---|
| From | var localIdentifier: String! |
| To | var localIdentifier: String? |
Modified NEVPNProtocolIPSec.remoteIdentifier
| Declaration | |
|---|---|
| From | var remoteIdentifier: String! |
| To | var remoteIdentifier: String? |
| Declaration | |
|---|---|
| From | @NSCopying var sharedSecretReference: NSData! |
| To | @NSCopying var sharedSecretReference: NSData? |
Modified NEVPNStatus [enum]
| Raw Value Type | |
|---|---|
| From | -- |
| To | Int |