Releases: apollographql/apollo-ios
Version 0.23.0
v0.23.0
-
BETA: Now available, SPM-based code generation, Phase 0 of our transition to Swift Codegen.
Note that the underlying codegen is still using
apollo-tooling
, but that will change as we proceed with Phase 1 of the Swift Codegen Project, generating the code in Swift.Documentation is available at our Swift Scripting page.
When this gets to the final version this will supersede existing codegen, so please file bugs galore on this so we can get it good to go as quickly as possible. Thank you! (#940, #1033)
-
Fixed some memory leaks in our internal Promises implementation. (#1016)
Version 0.22.0
- BREAKING: Updated CLI to v2.22.1, including a bunch of fixes on the Swift side:
- Marked files which are generated as
@generated
- Added documentation to the constructors of input structs
- Added additional type annotations to improve compile times.
- Marked files which are generated as
- BREAKING: Updated delegate in
HTTPNetworkTransport
to be aweak var
and to not be passed in as a parameter to the initializer. (#990, #1002) - Added a lock to
InMemoryNormalizedCache
to reduce possible race conditions. (#552) - Added the ability to not send duplicates on a websocket. (#1004)
- Fixed an issue that could lead to an undefined cache key in the SQLite library. (#991)
- Fixed an issue where existing fetch operations in a watcher would not be canceled before a new one was started. (#1012)
Version 0.21.0
- BREAKING, but by popular request: Removed the requirement that the
clientName
andclientVersion
onNetworkTransport
, and added a default implementation so custom implementations don't need to set these up themselves. (#954)
Version 0.20.0
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)