Skip to content

Releases: apollographql/apollo-ios

Version 0.19.0

29 Oct 22:29
Compare
Choose a tag to compare
  • 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 own NetworkTransport implementation instead of one of the ones included with the library, this now must be a class instead of a struct. (#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

24 Oct 16:12
Compare
Choose a tag to compare
  • Removes TSAN from run on schemes to fix Carthage issue. (#862)

Version 0.18.0

23 Oct 00:56
Compare
Choose a tag to compare
  • 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
  • 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

16 Oct 03:40
Compare
Choose a tag to compare
  • 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

03 Oct 14:57
Compare
Choose a tag to compare
  • Updated the way run-bundled-codegen checks whether the bundled codegen has already been unzipped and has node locally. (#806)
  • Updated how default parameters are provided for RequestCreatorProtocol. (#804)

Version 0.16.0

24 Sep 22:48
Compare
Choose a tag to compare
  • 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

13 Sep 01:50
Compare
Choose a tag to compare
  • Revert CLI update from 0.15.2 due to unexpected build issues.

Version 0.15.2

12 Sep 23:56
Compare
Choose a tag to compare
  • 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 for HTTPResponseError. (#756)

Version 0.15.1

04 Sep 16:49
Compare
Choose a tag to compare
  • Add platform name to framework bundle identifier to work around a change to app store submission. Please see the PR for more details. (#751)
  • Expose the initializer for GraphQLQueryWatcher so it can actually be instantiated. (#750)

Version 0.15.0

16 Aug 09:12
Compare
Choose a tag to compare
  • BREAKING: Finally swapped out URLSessionConfiguration on initializer for HTTPNetworkTransport to use URLSession directly instead. If you were previously passing in a configuration, first hand it to a URLSession 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 and ApolloWebSocket. (#674)
  • Created ApolloClientProtocol to match all public methods of ApolloClient for easier mocking. (#715, inspired by #693)