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.8.1] - 2024-11-15 [Supported]
Updated
Hydra to 5.12.0
[6.8.0] - 2024-10-31 [Supported]
Implemented
applyLocationIfConnected(_:completion:)
moved toVPNSDK
and available for Hydra and WireGuard (IPSec still throws error).connectedServerCountry
andconnectedServerCity
properties have been added toCredential
.Credential
is also returned as a result in theapplyLocationIfConnected
method.let logsCryptographicCredentials: CryptographicCredentials?
inHydraConfiguration
andWireguardConfiguration
along withComposedConfiguration
which allow developers to setup their ownCryptographicCredentials
to encode and decode logs.LICENSE.md
file with proper license message to be used by developer in the applications.
Fixed
Possible problem with ignoring the
includeAllNetworks
andexcludeLocalNetworks
flags when using the IPSec protocol.Possible problem with ignoring the
onDemand
rules when using the IPSec protocol.Possible problem with accessing local network connections with IKEv2 data leaks.
Updated
WireGuard protocol library using WireGuardKit version
1.0.15-26
and Go versiongo1.22.5 darwin/amd64
to addressgo.o
malformedLC_DYSYMTAB
warnings.
[6.7.0] - 2024-09-26 [Supported]
Implemented
- Add ability to bypassAllExcept
specified domains are routed trough the VPN, and all other traffic bypasses the VPN.
Updated
- Hydra to 5.11.0
Removed
- Config API for refactoring including removal of func requestCDMS(configs: [String], params: [String: String]) -> AnyPublisher<[CDMSConfig], Error>
[6.6.0] - 2024-08-29 [Supported]
Updated
- VPNState enum cases now mirror Apple's NEVPNStatus enum (.idle state renamed to .reasserting)
Fixed
- Renamed `stageHostURLs` to `hostURLs` in all public configs (HydraConfiguration, IPSecConfiguration, WireguardConfiguration)
[6.5.0] - 2024-07-26 [Deprecated]
Fixed
- Fixes a problem where the Hydra/WireGuard VPN connection could be dropped in some cases when the `includeAllNetworks` flag is enabled.
- Fixes a problem where the VPN connection could not be started after a network change when the `includeAllNetworks` flag is enabled.
[6.4.0] - 2024-06-07 [Deprecated]
Implemented
- Add ability to disable protocol type name via `ModulesConfiguration`, it's enabled by default.
- Add ability to set `includeAllNetworks` and `excludeLocalNetworks` flags.
- Update Hydra to 5.7.0.
Fixed
- Fixes possible incorrect state in the IPSec stop completion call.
[6.3.0] - 2024-02-12 [Deprecated]
Implemented
- 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-01-25 [Sunset]
Implemented
- Implemented failure behaviour 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 [Sunset]
Implemented
- Added connection failure behavior option, by default is set to `bypass`.
Fixed
- Fixed On-Demand setting on IPSec protocol.
[6.0.0] - 2023-10-26 [Sunset]
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 [Sunset]
Updated
- Improved encrypted logging.
- Improved local storage.
[5.8.1] - 2023-08-31 [Sunset]
Fixed
- Fixed possible storage problems while using system extension.
[5.8.0] - 2023-08-25 [Sunset]
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 [Sunset]
Fixed
- Fixed crash during using RFC1918 detector with IPv6.
[5.7.0] - 2023-07-14 [Sunset]
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 [Sunset]
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 [Sunset]
Implemented
- `VPNLogSharingHelper` with static methods for easier logs sharing.
[5.5.0] - 2023-04-24 [Sunset]
Implemented
- Selection of node by category.
Updated
- Update logs security.
[5.4.0] - 2023-04-10 [Sunset]
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 [Sunset]
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 [Sunset]
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 [Sunset]
Updated
- IPSec authornization improvements
- Using data protection for keychain
[5.2.1] - 2022-11-24 [Sunset]
Updated
- Killswitch improvement
- Removed Keychain Sharing to simplify integration.
[5.2.0] - 2022-10-26 [Sunset]
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 [Sunset]
## Updated
- Added ability to set WireGuard session ping interval.
- Added `trafficExceeded` tunnel error.
[5.1.0] - 2022-09-16 [Sunset]
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 [Sunset]
Implemented
- Added WireGuard protocol.
[4.0.3] - 2022-04-11 [Sunset]
Updated
- Added missed Objc initializer in TrafficCounter.
- Updated Hydra library with OpenSSL 1.1.1n
[4.0.2] - 2022-03-23 [Sunset]
Updated
- Added missed Objc error codes.
- Fixed reconnecting issue while switching between protocols.
[4.0.1] - 2022-03-23 [Sunset]
Implemented
- Implemented performance test.
- Added missed Objc error codes.
- Fixed reconnecting issue while switching between protocols.
[4.0.0] - 2021-12-21 [Sunset]
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 [Sunset]
Implemented
- Implemented city support of virtual location.
[3.2.1] - 2021-15-07 [Sunset]
Fixed
- Fixed connection issue which can occur between switching networks with enabled killswitch.
[3.2.0] - 2021-26-04 [Sunset]
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 [Sunset]
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 [Sunset]
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 [Sunset]
Fixed
- Fixed merging policy issue between local and remote Fireshield config.
[3.1.6] - 2020-30-10 [Sunset]
Fixed
- Fixed issue with second DNS request added in iOS 14, which causes blocked sites to open.
[3.1.5] - 2020-25-09 [Sunset]
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 [Sunset]
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 [Sunset]
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 [Sunset]
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 Hydra library with fixed whitelisting crash.
[3.1.1] - 2020-04-02 [Sunset]
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 [Sunset]
Impemented
- Added ad-mob section to remote config.
Fixed
- Fixed issue with parsing subscriber model during login.
[3.0.9] - 2019-31-10 [Sunset]
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 [Sunset]
Updated
- Updated remote-config logic to resolve issue with alert-page.
[3.0.7] - 2019-09-09 [Sunset]
Fixed
- Fixed token migrating from previous version of SDK.
[3.0.6] - 2019-09-09 [Sunset]
Updated
- Updated logic in storing failed errors in network extension target.
[3.0.5] - 2019-05-09 [Sunset]
Fixed
- Fixed issue remote configuration mapping.
[3.0.4] - 2019-19-08 [Sunset]
Fixed
- Fixed issue with mapping RemainingTraffic object after spending all traffic.
[3.0.3] - 2019-01-08 [Sunset]
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 [Sunset]
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 [Sunset]
Updated
- Updated error message representation for connection error event report.
[3.0.0] - 2019-16-07 [Sunset]
Implemented
- Rewritten SDK in Swift and included analytics, with the ability to support multiple VPN protocols.
[0.4.17] - 2019-06-06 [Sunset]
Fixed
- Fixed issue with dynamic whitelist when after unblocking URL it still blocked.
[0.4.16] - 2019-04-25 [Sunset]
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 [Sunset]
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 [Sunset]
Added
- Added fireshield controller to AFNetworkExtensionDelegate, to make dynamic changes into Fireshield white/black list
[0.4.13] - 2019-02-20 [Sunset]
Added
- Added traffic data counter delegate function to AFNetworkExtensionDelegate
[0.4.12] - 2019-02-13 [Sunset]
Updated
- Updated device id generation
[0.4.11] - 2019-01-31 [Sunset]
Fixed
- Fixed that bypass mode isn't working if bypass config variable set to true
[0.4.10] - 2018-12-12 [Sunset]
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 [Sunset]
Fixed
- Preparing connection state management
[0.4.8] - 2018-09-05 [Sunset]
Updated
- `trafficCounters` is now a read-only property
- `AFVPNCategorizationDidChangeNotification` notification's user info now contains `AFHydraCategorization` object
[0.4.7] - 2018-08-09 [Sunset]
Fixed
- Completion block is called upon Permission Denied error
[0.4.6] - 2018-08-03 [Sunset]
Updated
- Public API improvements
- `updateConfig:` can be used to change Fireshield mode and On Demand value
[0.4.5] - 2018-07-31 [Sunset]
Fixed
- Earlier NE delegate instantiation
[0.4.4] - 2018-07-24 [Sunset]
Updated
- Fireshield server response timeout fix (for cases, when Fireshield is not supported on the server-side)
[0.4.3] - 2018-07-24 [Sunset]
Updated
- `vpnProfileName` is now a required parameter for Hydra iOS SDK configuration
[0.4.2] - 2018-07-23 [Sunset]
Updated
- Small updates to public interface documentation
[0.4.1] - 2018-07-23 [Sunset]
Updated
- Put it all together
[0.4.0] - 2018-07-11 [Sunset]
Added
- Categorization service (aka Fireshield) client API
[0.3.9.21] - 2018-07-10 [Sunset]
Fixed
- Fix gaming issue
[0.3.9.20] - 2018-07-05 [Sunset]
Fixed
- Temp workaround for fast disconnected state that might be received from the SDK during Connecting
[0.3.9.19] - 2018-07-04 [Sunset]
Fixed
- Happy 4th of July!
[0.3.9.18] - 2018-07-03 [Sunset]
Fixed
- Fix "Disconnecting" state is sent after "Connecting" has been sent (via workaround, for now)
[0.3.9.17] - 2018-07-03 [Sunset]
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 [Sunset]
Fixed
- Fix "Disconnecting" state is sent after "Connecting" has been sent (more improvements)
[0.3.9.15] - 2018-07-02 [Sunset]
Fixed
- Fix "Disconnecting" state is sent after "Connecting" has been sent
[0.3.9.14] - 2018-06-22 [Sunset]
Fixed
- `-isBypassEnabled` now returns correct value
[0.3.9.13] - 2018-06-18 [Sunset]
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 [Sunset]
Fixed
- Fix correctly handle traffic exceed (191) error
[0.3.9.11] - 2018-06-11 [Sunset]
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 [Sunset]
Fixed
- Fix vpnWillStop is called upon network interface change
- Fix exception due to unbalanced KVO call
[0.3.9.9] - 2018-05-31 [Sunset]
Fixed
- Misc improvements macOS SDK
[0.3.9.8] - 2018-05-30 [Sunset]
Added
- Default willStop implementation of tunnel provider delegate
[0.3.9.7] - 2018-05-25 [Sunset]
Fixed
- Fix crash during hydra state logging
[0.3.9.6] - 2018-05-22 [Sunset]
Added
- GDPR support
[0.3.9.5] - 2018-05-22 [Sunset]
Fixed
- Fix `Exception: +[NSError neStopReason:]: unrecognized selector sent to class`
[0.3.9.4] - 2018-05-22 [Sunset]
Fixed
- Update libHydra
[0.3.9.3] - 2018-05-10 [Sunset]
Fixed
- Fix invalid token error processing
[0.3.9.2] - 2018-05-09 [Sunset]
Fixed
- Update libHydra
- Fix VoIP Issue
[0.3.9.1] - 2018-05-05 [Sunset]
Added
- Added support for code 186
Fixed
- Updated libhydra to the latest patch version fixing upload issue
[0.3.9] - 2018-04-19 [Sunset]
Fixed
- Prevent multiple startVPN calls
- Fixed sleepTunnel.. call in NetworkExtension - shouldn't generate crash on tunnel sleep anymore
[0.3.8] - 2018-04-10 [Sunset]
Added
- PKI support is enabled by default
- Timezone support for login method to make traffic counting more precise
[0.3.7] - 2018-04-03 [Sunset]
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 [Sunset]
Fixed
- Updated VPN protocol library
[0.3.5] - 2018-03-15 [Sunset]
Added
- Added vpnProfileName property to AFConfig allowing to set VPN profile name visible in iOS Settings > VPN
[0.3.4] - 2018-02-13 [Sunset]
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 [Sunset]
Fixed
- Fixed an issue when bypass mode switched back to non-bypass in out of traffic situation
[0.3.2] - 2018-01-20 [Sunset]
Added
- Improved Swift compatibility
[0.2.9] - 2017-11-14 [Sunset]
Fixed
- VPN on-demand issues when network was changed between WiFi and Cellular
[0.2.8] - 2017-11-09 [Sunset]
Fixed
- Fixed issue that caused network extension to crash with on-demand rules enabled
[0.2.7] - 2017-11-06 [Sunset]
Fixed
- Minor fixes and improvements
[0.2.6] - 2017-11-03 [Sunset]
Fixed
- Minor fixes and improvements
[0.2.5] - 2017-10-20 [Sunset]
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