Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[6.3.0] - 2024-12-02

  • Add preserveDeviceID function to preserver deviceID for the current user.

  • Add throwing of an error when SDK is unable to read/write to/from keychain.

[6.2.0] - 2024-25-01

Implemented

  • Implemented failure behavior when TunnelProvider is unable to connect to the server. (ConnectionFailureBehaviour)

Fixed

  • Fixed error on first connection when using IPSec protocol.

[6.1.0] - 2023-11-30

Implemented

  • Added connection failure behaviour option, by default is set to bypass.

Fixed

  • Fixed On-Demand setting on IPSec protocol.

[6.0.0] - 2023-10-26

Implemented

  • Added SDK configuration udpate ffunctions to update SDK without creating a newer instance.

Updated

  • Hydra updated with several crash fixes.

  • SDK Configurations updated, now each module configuration have own configuration (eg. OnDemandConfiguration).

  • WireguardTunnelProvider.xcframework is a static framework now and can be intergated in the same way as any other extension side framework (Like Hydra).

  • These steps are not needed anymore for WireGuard integration:

    • Link WireguardTunnelProvider.xcframework to Application target and set Embed & Sign under Embed options.

    • Add WireGuardKit via Swift Package Manager (https://git.zx2c4.com/wireguard-apple) and link it to your Network Extension Target.

    • Create External build System target and set $(PROJECT_DIR)/build_wireguard_go_bridge.sh as build tool.

    • Add newly created target as Dependency for your Network extension target under Build phases target options.

    • NOTE: If you want to build WireGuard for macOS, please set SDKROOT option to macosx in Build Settings of your external build system target.

[5.9.0] - 2023-09-29

Updated

  • Improved encrypted logging.

  • Improved local storage.

[5.8.1] - 2023-08-31

Fixed

  • Fixed possible storage problems while using system extension.

[5.8.0] - 2023-08-25

Fixed

  • Fixed invalid token error after switching to IPSec protocol. _ Fixed double calling of trafic exceeded delegate function.

  • Fixed error on the first connection attempt.

Updated

  • Improved logging.

[5.7.1] - 2023-07-21

Fixed

  • Fixed crash during using RFC1918 detector with IPv6.

[5.7.0] - 2023-07-14

Implemented

  • Credential requests moved to network extensions to improve performance.

  • RFC1918 IP address detector.

  • Added stop reason to vpnWillStop delegate call.

  • Added ability to start VPN from the Settings.

Fixed

  • Killswitch loop with unsatisfied network path.

  • Added missing dsym files to dynamic frameworks.

[5.6.0] - 2023-05-22

Implemented

  • Add option to set stageHostURLs in Configuration.

  • BaseNetworkExtensionDelegate method vpnWillStop(availableRestartCompletion: ((_ shouldRestart: Bool) -> Void)?) is changed to vpnWillStop(withError error: VPNTunnelError?, availableRestartCompletion: ((_ shouldRestart: Bool) -> Void)?). Update your delegate class in order to continue receive this message.

[5.5.1] - 2023-05-02

Implemented

  • VPNLogSharingHelper with static methods for easier logs sharing.

[5.5.0] - 2023-04-24

Implemented

  • Selection of node by category.

Updated

  • Update logs security.

[5.4.0] - 2023-04-10

Updated

  • Reduced WireGuard traffic exceed error delay.

Fixed

  • Fixed crash after reinstalling profile and trying to run VPN again while using system extension.

[5.3.1] - 2023-03-07

Implemented

  • macOS system extension support

Fixed

  • Possible problem with missing token on the tunnel provider side

  • Loading of domains from bypass list

[5.3.0] - 2022-02-01

Implemented

  • Add multihop feature

Fixed

  • Incorrect VPN state in completion while installing VPN profile

  • Possible fix for Hydra infinite connection loop while using killswitch

[5.2.2] - 2022-12-08

Updated

  • IPSec authornization improvements

  • Using data protection for keychain

[5.2.1] - 2022-11-24

Updated

  • Killswitch improvement

  • Removed Keychain Sharing to simplify integration.

[5.2.0] - 2022-10-26

Updated

  • Sensitive data security improved. Keychain Sharing capability now should be enabled in Xcode for application and network extension targets with the same keychain group.

  • Improved tunnel providers sleep handling.

Fixed

  • Fixed possible endless restart on traffic exceeded error in Hydra tunnel provider.

[5.1.1] - 2022-09-26

Updated

  • Added ability to set WireGuard session ping interval.

  • Added trafficExceeded tunnel error.

[5.1.0] - 2022-09-16

Updated

  • Added support of separate bypass domains for WireGuard protocol.

  • Removed custom hosts from user config.

Fixed

  • Fixed WireGuard exceeded traffic handling.

  • Fixed on-demand turning off using config.

  • Resolved some possible data race problems.

[5.0.0] - 2022-06-30

Implemented

  • Added WireGuard protocol.

[4.0.3] - 2022-04-11

Updated

  • Added missed Objc initializer in TrafficCounter.

  • Updated Hydra library with OpenSSL 1.1.1n

[4.0.2] - 2022-03-23

Updated

  • Added missed Objc error codes.

  • Fixed reconnecting issue while switching between protocols.

[4.0.1] - 2022-03-23

Implemented

  • Implemented performance test.

  • Added missed Objc error codes.

  • Fixed reconnecting issue while switching between protocols.

[4.0.0] - 2021-12-21

Updated

  • Added IPSec protocol.

  • Added Auto switcher between VPN protocols.

  • Added option for setting DNS for tunnel provider.

  • Fixed issue with memory usage in network extension.

  • Fixed several crashes in network extension.

[3.2.2] - 2021-10-09

Implemented

  • Implemented city support of virtual location.

[3.2.1] - 2021-15-07

Fixed

  • Fixed connection issue which can occur between switching networks with enabled killswitch.

[3.2.0] - 2021-26-04

##Updated

  • Added macOS arm64 architecture.

  • Subscription extref field set as optional.

Fixed

  • Fixed bypassing issue when domains set to bypass as bypassDomains config value.

[3.1.9] - 2021-18-01

Fixed

  • Fixed crash issue with handling state notification from NEVPNProtocolIPSec.

Updated

  • Expanded VPNSDKError for better Objective-C compatibility.

  • Removed platform prefix from framework name. (example fro macOS platform "import VPNApplicationSDK" )

[3.1.8] - 2020-24-12

Implemented

  • Added support of host fallback, now setting host in the configuration is optional, fallback hosts could be configured via the dashboard, by default if none of the hosts are specified in HydraConfiguration, hardcoded hosts will be used.

Fixed

  • Fixed reconnecting issue which could occur right after calling start function from stop callback (POSIX error).

[3.1.7] - 2020-01-12

Fixed

  • Fixed merging policy issue between local and remote Fireshield config.

[3.1.6] - 2020-30-10

Fixed

  • Fixed issue with second DNS request added in iOS 14, which causes blocked sites to open.

[3.1.5] - 2020-25-09

Implemented

  • Using system DNS server if it not set in HydraConfiguration.

  • Added support of newer remote fierdshield config.

  • Added detailed logging system for the tunnel provider.

[3.1.4] - 2020-04-05

Fixed

  • Fixed the Connecting state issue which can occur right after updating from the older SDK (3.0.x) if the VPN connection was established.

[3.1.3] - 2020-08-04

Implemented

  • Implemented the KillSwitch feature. When Hydra has occurred error and if the delegate method vpnWillStopWith:(nonnull void(^)(BOOL restart))completion is implemented, then until completion callback is called Hydra will run in the killswitch mode, please refer to the documentation about the restart parameter.

  • Implemented providing of the VirtualLocation in the callback of startVPN function.

Fixed

  • Fixed the receiving of Hydra state from proper VPNManger object.

  • Fixed issue with Fireshield when users unble to use netowkr messengers (stuck in the Connecting state).

[3.1.2] - 2020-11-03

Updated

  • Improved FireshieldController and Fireshield categories, implemented the possibility of adding custom categories to the fireshield.

  • Enabled BitCode support.

  • Added StartupOptions to the vpnWillStart delegate method.

Updated

  • Updated Hydra library with fixed whitelisting crash.

[3.1.1] - 2020-04-02

Updated

  • Updated Hydra library with added battery saving mode, which enables Fireshield is DNS-only mode, this option can be found in FireshieldConfig.

[3.1.0] - 2019-19-12

Impemented

  • Added ad-mob section to remote config.

Fixed

  • Fixed issue with parsing subscriber model during login.

[3.0.9] - 2019-31-10

Updated

  • Updated logic to update credentials during sleep to resolve issue with 196 error.

  • Disabled silentMode in Fireshield configuration, setting the Fireshield mode to .silent will not affect on the configuration.

[3.0.8] - 2019-09-09

Updated

  • Updated remote-config logic to resolve issue with alert-page.

[3.0.7] - 2019-09-09

Fixed

  • Fixed token migrating from previous version of SDK.

[3.0.6] - 2019-09-09

Updated

  • Updated logic in storing failed errors in network extension target.

[3.0.5] - 2019-05-09

Fixed

  • Fixed issue remote configuration mapping.

[3.0.4] - 2019-19-08

Fixed

  • Fixed issue with mapping RemainingTraffic object after spending all traffic.

[3.0.3] - 2019-01-08

Implemented

  • Implemented currentFireshieldMode variable in HydraSDK class

Fixed

  • Fixed issue with visible VPN icon when Fireshield mode is set to .silent

  • Fixed issue with FireshieldController variable assigment in Network Extension Delegate.

[3.0.2] - 2019-25-07

Implemented

  • Implemented deviceType variable in Hydra configuration.

Fixed

  • Fixed issue with Fireshield, that not blocking unsafe sites.

  • Fixed vpnDataCounterDidUpdate delegate method in network extension target.

[3.0.1] - 2019-22-07

Updated

  • Updated error messsage representation for connection error event report.

[3.0.0] - 2019-16-07

Implemeted

  • Rewritten SDK in Swift and included analytics, with the ability to support multiple VPN protocols.

[0.4.17] - 2019-06-06

Fixed

  • Fixed issue with dynamic whitelist when after unblocking URL it still blocked.

[0.4.16] - 2019-04-25

Updated

  • Improved dynamic whitelist feature, added possibility to add/remove URL from list.

Fixed

  • Fixed issue with updating from older version of SDK to current without connection issues.

  • Fixed issue with bypass connection status after traffic exceed.

[0.4.15] - 2019-04-05

Updated

  • Improved dynamic whitelist feature

Added

  • Added support of remote bypass list feature

Fixed

  • Fixed issue with auto-reconnecting in onDemand mode if at first time connection not established

[0.4.14] - 2019-03-18

Added

  • Added fireshield controller to AFNetworkExtensionDelegate, to make dynamic changes into Fireshield white/black list

[0.4.13] - 2019-02-20

Added

  • Added traffic data counter delegate function to AFNetworkExtensionDelegate

[0.4.12] - 2019-02-13

Updated

  • Updated device id generation

[0.4.11] - 2019-01-31

Fixed

  • Fixed that bypass mode isn't working if bypass config variable set to true

[0.4.10] - 2018-12-12

Updated

  • Rewrited fireshield configuration, now it's more flexible

  • Implemented Remote config feature, now Hydra config can be overwritten via remote config

[0.4.9] - 2018-09-11

Fixed

  • Preparing connection state management

[0.4.8] - 2018-09-05

Updated

  • trafficCounters is now a read-only property

  • AFVPNCategorizationDidChangeNotification notification's user info now contains AFHydraCategorization object

[0.4.7] - 2018-08-09

Fixed

  • Completion block is called upon Permission Denied error

[0.4.6] - 2018-08-03

Updated

  • Public API improvements

  • updateConfig: can be used to change Fireshield mode and On Demand value

[0.4.5] - 2018-07-31

Fixed

  • Earlier NE delegate instantiation

[0.4.4] - 2018-07-24

Updated

  • Fireshield server response timeout fix (for cases, when Fireshield is not supported on the server-side)

[0.4.3] - 2018-07-24

Updated

  • vpnProfileName is now a required parameter for Hydra iOS SDK configuration

[0.4.2] - 2018-07-23

Updated

  • Small updates to public interface documentation

[0.4.1] - 2018-07-23

Updated

  • Put it all together

[0.4.0] - 2018-07-11

Added

  • Categorization service (aka Fireshield) client API

[0.3.9.21] - 2018-07-10

Fixed

  • Fix gaming issue

[0.3.9.20] - 2018-07-05

Fixed

  • Temp workaround for fast disconnected state that might be received from the SDK during Connecting

[0.3.9.19] - 2018-07-04

Fixed

  • Happy 4th of July!

[0.3.9.18] - 2018-07-03

Fixed

  • Fix "Disconnecting" state is sent after "Connecting" has been sent (via workaround, for now)

[0.3.9.17] - 2018-07-03

Removed

  • Revert to old approach, where SDK analyzes only last session's error and switches to bypass accordingly

[0.3.9.16] - 2018-07-03

Fixed

  • Fix "Disconnecting" state is sent after "Connecting" has been sent (more improvements)

[0.3.9.15] - 2018-07-02

Fixed

  • Fix "Disconnecting" state is sent after "Connecting" has been sent

[0.3.9.14] - 2018-06-22

Fixed

  • -isBypassEnabled now returns correct value

[0.3.9.13] - 2018-06-18

Added

  • SDK switches to bypass after numer of sessions with errors exceedes 3 (three). This behavior is only applied to configurations with On-Demand rules.

[0.3.9.12] - 2018-06-14

Fixed

  • Fix correctly handle traffic exceed (191) error

[0.3.9.11] - 2018-06-11

Added

  • Add -shouldStartVPN method

  • Add AFNEErrorCodeCancelled error

Fixed

  • Fix correctly handle token expired (196) error

Updated

  • Change -vpnDidStart to -vpnDidStartWithOptions:

[0.3.9.10] - 2018-06-01

Fixed

  • Fix vpnWillStop is called upon network interface change

  • Fix exception due to unbalanced KVO call

[0.3.9.9] - 2018-05-31

Fixed

  • Misc improvements macOS SDK

[0.3.9.8] - 2018-05-30

Added

  • Default willStop implementation of tunnel provider delegate

[0.3.9.7] - 2018-05-25

Fixed

  • Fix crash during hydra state logging

[0.3.9.6] - 2018-05-22

Added

  • GDPR support

[0.3.9.5] - 2018-05-22

Fixed

  • Fix Exception: +[NSError neStopReason:]: unrecognized selector sent to class

[0.3.9.4] - 2018-05-22

Fixed

  • Update libHydra

[0.3.9.3] - 2018-05-10

Fixed

  • Fix invalid token error processing

[0.3.9.2] - 2018-05-09

Fixed

  • Update libHydra

  • Fix VoIP Issue

[0.3.9.1] - 2018-05-05

Added

  • Added support for code 186

Fixed

  • Updated libhydra to the latest patch version fixing upload issue

[0.3.9] - 2018-04-19

Fixed

  • Prevent multiple startVPN calls

  • Fixed sleepTunnel.. call in NetworkExtension - shouldn't generate crash on tunnel sleep anymore

[0.3.8] - 2018-04-10

Added

  • PKI support is enabled by default

  • Timezone support for login method to make traffic counting more precise

[0.3.7] - 2018-04-03

Added

  • VPN protocol library versioning

Removed

  • IDFA usage is removed from both UCR and HydraSDK

Updated

  • UCR library updated

[0.3.6] - 2018-03-30

Fixed

  • Updated VPN protocol library

[0.3.5] - 2018-03-15

Added

  • Added vpnProfileName property to AFConfig allowing to set VPN profile name visible in iOS Settings > VPN

[0.3.4] - 2018-02-13

Changed

  • On-demand is now configured with NetworkExtension API

Fixed

  • String config parameters are now copied by default

Removed

  • Removed AFOnDemandRules

[0.3.3] - 2018-02-07

Fixed

  • Fixed an issue when bypass mode switched back to non-bypass in out of traffic situation

[0.3.2] - 2018-01-20

Added

  • Improved Swift compatibility

[0.2.9] - 2017-11-14

Fixed

  • VPN on-demand issues when network was changed between WiFi and Cellular

[0.2.8] - 2017-11-09

Fixed

  • Fixed issue that caused network extension to crash with on-demand rules enabled

[0.2.7] - 2017-11-06

Fixed

  • Minor fixes and improvements

[0.2.6] - 2017-11-03

Fixed

  • Minor fixes and improvements

[0.2.5] - 2017-10-20

Added

  • Added on-demand mode (See AFConfig / AFConfigBuilder, AFOnDemandRules)

  • Added SDK version (AFHydraVersion constant)

Changed

  • Changed startVpn and startVpnWithCountry callback parameters, now including AFCountry instance VPN connected to

  • Added optional installVpnProfile function to better control VPN installation flow for tutorial purposes

Fixed

- Fixed issue when VPN couldn't disconnect automatically on WiFi change

  • Improved Swift compatibility

Last updated