The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
- Added PrivacyManifest file definition according to [Apple's guidelines](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files?language=objc)
- Add `GRDSGWServer` class to allow for easy parsing and handling of VPN server metadata in the internals of the SDK
- Updated latest APIs to connect to a VPN server in `GRDVPNHelper` to use the new `GRDSGWServer` class
- Attach full `GRDRegion` object to every new VPN credential stored as a `GRDCredential`
- Improve nullability annotations for better Swift inoperability
- Expose ability to set Connect API hostname for (almost) all requests
- Improve developer experience
- Improve Swift compatibility
- Improve class use consistency within the SKD instead of accessing values directly through NSUserDefaults or the System Keychain
- Prevent runtime crash due to missing nullability checks in `GRDIAPReceiptResponse`
- Add foundation to enable smart routing proxy capability soon
- Added the ability to either provide a PET or client identifier & secret for certain `GRDConnectDevice` functions
- Expose new metadata about `GRDConnectDevice` objects
- Updated Connect API endpoint versions
- Allow for integration apps to set a preferred Subscriber Credential validation method to disable fallback logic to undesired validation methods
- Add region precision to allow users to choose from a list of cities, countries or cities grouped by countries
- Add support for region selection based on new region precision regions
- Expose new GRDRegion metadata
- Add dispatch groups to disconnectWithCompletionHandler to guarantee order of operations and prevent runtime crashes due to incompatibilities with Swift Concurrency
- Improve restoring user selected regions from NSUserDefaults upon initialization of `GRDVPNHelper`
- Improved logging upon failure to store `GRDPEToken` objects with the `[GRDPEToken store]` method
- Added the Connect API environment as a property to `GRDPEToken` objects
- Cleanup API request boilerplate code in `GRDHousekeepingAPI`
### This is a pre-release build of 1.8.5 and should not be used in shipping production versions
- Improve restoring user selected regions from NSUserDefaults upon initialization of `GRDVPNHelper`
- Improved logging upon failure to store `GRDPEToken` objects with the `[GRDPEToken store]` method
- Added the Connect API environment as a property to `GRDPEToken` objects
- Cleanup API request boilerplate code in `GRDHousekeepingAPI`
- Added `NSSecureCoding` support to `GRDRegion` to allow for easy handling and storing of the object
- Set internal tunnel loaded state within `GRDTunnelManager` to prevent race conditions
### This is a pre-release build of 1.8.0 and should not be used in shipping production versions
- Expose country ISO code in `GRDRegion``
- Minor fixes
### This is a pre-release build of 1.8.0 and should not be used in shipping production versions
- Guarantees new codepath use while VPN connections are established with the newer high level APIs
- Adds obscure build flag in an attempt to not break lldb through absolute paths in the debug symbols included in GuardianConnect
- Report back unaltered errors from the NetworkExtension.framework
- Implemented `/verify-receipt` wrapper v1.3
- Added support classes to make handling of StoreKit IAP receipts easier