Releases: apollographql/apollo-ios
Version 0.19.0
- NEW: Added a retry delegate to allow retries based on GraphQL errors returned from your server, not just network-level errors. NOTE: Be careful with which errors you retry for - the mere presence of an error doesn't necessarily indicate a full failure since GraphQL queries can return partial results. (#770)
- NEW: Automatically generates ApolloEngine/ApolloGraphManager headers based on your main bundle's ID and version number. These can also be configured when you set up your
NetworkTransport
if you need something more granular for different versions of your application. (#858) - POSSIBLY BREAKING: The
NetworkTransport
protocol is now class-bound. If you built your ownNetworkTransport
implementation instead of one of the ones included with the library, this now must be aclass
instead of astruct
. (#770) - POSSIBLY BREAKING: Removed an
unzip
method for arrays of arrays which we were not using. However, since it was public, we figured we should let you know. (#872) - Bumped Starscream dependency to
3.1.1
. (#873)
Version 0.18.1
- Removes TSAN from run on schemes to fix Carthage issue. (#862)
Version 0.18.0
-
POSSIBLY BREAKING: Updated CLI to no longer be directly bundled, but to be downloaded if needed. This allows us to avoid bloating the iOS repo with the CLI zip, and to make it easier to test different versions of the CLI in the future. This change should automatically download the updated CLI version for you.
Note one significant change from prior bundled versions: If you are connected to the internet when you download the iOS dependency through SPM/Carthage/CocoaPods, you will now need to build your target while still connected to the internet in order to download the proper version of the CLI. Once the correct version of the CLI is downloaded, internet access should no longer be necessary to build. If you disconnect from the internet before the correct version downloads, you will not be able to build. (#855)
-
Updated version of CLI to download to
2.21.0
. (#855) This includes:- Ability to have the codegen ignore deprecated enum cases by using the
--omitDeprecatedEnumCases
flag - Fix for generating input fields for
null
values
- Ability to have the codegen ignore deprecated enum cases by using the
-
Fixes a number of weak references with closures. Note that this may reveal some places you weren't hanging onto a strong reference to your
ApolloClient
object, which will cause it to get deallocated. (#854)
Version 0.17.0
- NEW: Support for Automatic Persisted Queries. This feature allows you to send the hash of a query to your server, and if the server recognizes the hash, it can perform the whole query without you having to send it again. This is particularly useful for large queries, since it can reduce the amount of data you have to send from your user's device pretty significantly. (#767)
- BREAKING: Removed old script files which have been deprecated. If you were still using these, please check out the updated codegen build step setup instructions to get up and running with the
run-bundled-codegen
script. (#820) - POSSIBLY BREAKING: Updated bundled CLI to v2.19.1. Please check out the CLI changelog for full details, but this version actually moves to using multi-line Swift strings for queries. If you prefer to have condensed queries, it also introduces a
--suppressSwiftMultilineStringLiterals
flag which produces single-line queries stripped of whitespace. (#831) - Fixed a couple places we were not using
LocalizedError
properly. (#818)
Version 0.16.1
Version 0.16.0
- BREAKING: We've switched to a much simpler setup which does not involve NPM in order to use our CLI. This requires updating your build scripts. Please follow the updated instructions for setting up the build script here. The existing build script will continue to work until the next minor release, at which point it will be removed. (#766)
- Included CLI version fixes issues which showed up in
0.15.2
. - BREAKING: We've removed all public references to our internal
Promise
implementation, which was never intended to be public. (#709) - Fixed a deadlock in a transaction. (#763, #365)
- Added a
RequestCreatorProtocol
to allow you to more easily muck with and/or mock creating multipart requests. (#771) - Fixed an issue causing problems building with SPM in Xcode 11. (#784)
Version 0.15.3
- Revert CLI update from
0.15.2
due to unexpected build issues.
Version 0.15.2
-
Update Apollo CLI requirement to 2.18. This should pull in a couple fixes to the CLI:
- Way better escaping of identifiers, types, and strings (Tooling #1515)
- Fix compiler warning when an optional has a
.none
case (Tooling #1482)
If you run into any weird build issues after this update, try deleting your local
node_modules
folder and rebuilding before filing an issue. (#760) -
Better handling of the
localizedDescription
forHTTPResponseError
. (#756)
Version 0.15.1
Version 0.15.0
-
BREAKING: Finally swapped out
URLSessionConfiguration
on initializer forHTTPNetworkTransport
to useURLSession
directly instead. If you were previously passing in a configuration, first hand it to aURLSession
instance and then pass that instance into the initializer.This allows many new things including:
- Support for background sessions
- Easier mocking through
NSURLProtocol
- Certificate pinning
- Self-signed certificates
- Metrics inspection
- Authentication challenge handling
All these are pretty much entirely through the ability to use URLSessionDelegate
directly since we're now accepting a URLSession
you can declare yourself to be the delegate of rather than just the configuration. (#699, inspired by #265)
- BREAKING, though hopefully in a good way: Significant updates to the Upload functionality to make it conform more closely to the GraphQL Upload Spec. Also added a goodly bit of documentation around this functionality. (#707)
- Way better support for Swift Package Manager, especially for
ApolloSQLite
andApolloWebSocket
. (#674) - Created
ApolloClientProtocol
to match all public methods ofApolloClient
for easier mocking. (#715, inspired by #693)