Skip to content

Releases: apollographql/apollo-ios

Version 0.34.0-beta2

16 Sep 00:13
Compare
Choose a tag to compare
Version 0.34.0-beta2 Pre-release
Pre-release

Networking Stack, Beta 2

  • Merges 0.33.0 changes into the networking stack for Swift 5.3 and Xcode 12.

Version 0.33.0

15 Sep 23:06
Compare
Choose a tag to compare
  • Adds support for Xcode 12 and Swift 5.3. (#1280)
  • Adds workaround script for Carthage support in Xcode 12. Please see Carthage-3019 for details. TL;DR: cd into [YourProject]/Carthage/Checkouts/apollo-ios/scripts and then run ./carthage-build-workaround.sh to actually get Carthage builds that work. (#yolo committed to main)

Version 0.33.0-beta1

11 Sep 20:06
Compare
Choose a tag to compare

First beta of our new networking stack.

  • SPECTACULARLY BREAKING: The networking stack for HTTP requests has been completely rewritten. This is described in great detail in the RFC for the networking changes, as well as the updated documentation for Advanced Client Creation. Please, please, please file bugs or requests for clarification of the docs as soon as possible. Note that all changes until the networking stack comes out of beta will live on the betas/networking-stack branch. (#1341)

Version 0.32.1

10 Sep 20:34
Compare
Choose a tag to compare
  • Improves invalidation of a URLSesionClient to include cancellation of in-flight operations. (#1376)

Version 0.32.0

02 Sep 23:05
Compare
Choose a tag to compare
  • Fixes an issue that would occur when a GraphQL query watcher's dependent keys would not get updated. (#1375)
  • Adds an extensions dictionary property to GraphQLResult. (#1370)
  • Makes a couple of response parsing helpers public for advanced use cases. (#1372)

Version 0.31.0

20 Aug 19:33
Compare
Choose a tag to compare
  • Adds the ability to pause and resume a WebSocket connection without dumping existing subscriptions. (#1335)

  • Adds an initializer to SQLiteNormalizedCache that takes a SQLite.swift DatabaseConnection to more easily allow setup of pre-configured connections. (#1330)

  • Addresses a retain cycle that could cause memory leaks when using multiple instances of HTTPNetworkTransport.

    NOTE: If you're using URLSessionClient outside the context of HTTPNetworkTransport, make sure to call invalidate() on it when whatever is holding onto it hits deinit() to prevent leaks. (#1366)

Version 0.30.0

17 Jul 19:16
Compare
Choose a tag to compare
  • BREAKING: Updates the CLI to 2.30.1 to fix a long-standing issue where when generating operation IDs and their related JSON file, the correct operations + fragments would be used in generating the operation ID, but not output with the JSON file. This will slightly change the output in API.swift, but it also means we can remove a related workaround from the iOS SDK. (#1316)
  • BREAKING: Removed the Cartfile which declared our dependencies, since we're now internally managing them with SPM, and newer versions of Carthage just use the SPM dependencies. Note that this can cause issues if you need to use a fork of dependencies, or if you're using an older version of Carthage. (#1311)
  • POSSIBLY BREAKING: Works around an issue that could cause some attempts to store untyped JSON dictionaries to throw unexpected errors about optional encoding. This also added handling of creating a dictionary from a JSONValue, which may cause problems if you've already implemented this yourself, but which should mostly just replace the need to implement it yourself. Please file issues ASAP if you run into problems here. (#1317)
  • Works around an issue causing some attempts to store arrays of JSON dictionaries to have arbitrary key ordering. (#1281)
  • Adds clearer error descriptions to a few errors. (#1295)

Version 0.29.1

02 Jul 16:08
Compare
Choose a tag to compare
  • Updates the CLI to 2.28.3 to fix an issue where linter failures would cause a silent failure exit. (#1284, #1288](#1288))
  • Adds a check to swift scripting that the downloaded file has the correct SHASUM, otherwise forcing redownload. (#1288)

Version 0.29.0

01 Jul 03:24
Compare
Choose a tag to compare
  • NEW: Swift scripting is officially out of Beta! Please check out our updated guide to integration. The tutorial should be updated to recommend using Swift Scripting within the next week or so. NOTE: The shell script is not deprecated yet, but will be shortly. (#1263)
  • BREAKING: Found some workarounds to conditional conformance and updated all extensions to use the apollo.extensionMethod syntax introduced in 0.28.0. (#1256)
  • BREAKING: Moved a few things into the new ApolloCore library. For CocoaPods and SPM users, this should be automatically picked up by your package manager. Carthage users, you will need to drag the new ApolloCore library into your project manually as you have with the other Apollo libs. (#1256)
  • BREAKING: Updated to version 2.28.0 of the Apollo JS CLI. This includes moving a bunch of static let allocations to computed static vars to prevent memory overuse. (#1246)
  • Made GraphQLGetTransformer and its methods public and made a couple more methods on MultipartFormData public. (#1273)
  • Fixes an issue when uploading multiple files for different variables. (#1279, special thanks to #1081)
  • Fixes a crash when encoding GraphQLVariable objects which conform to JSONEncodable. (#1262)

Version 0.28.0

28 May 00:54
Compare
Choose a tag to compare
  • BREAKING: Changed a few things in the ApolloCodegen library to use object.apollo.extensionMethod syntax rather than object.apollo_extensionMethod. There's a few things that are still using apollo_ notation due to constraints around conditional conformance, but you should particularly check your swift scripts for changes around FileManager APIs. (#1183)
  • BREAKING: NormalizedCache now has a method for explicitly clearing the cache synchronously, in addition to the existing method to clear it asynchronously. If you've got a custom NormalizedCache implementation, you'll need to add an implementation for this method. (#1186)
  • Fixed race conditions in URLSessionClient that were causing unexpected behavior. Turns out concurrency is hard! (#1227)
  • Improved handling of a dependent key update cancelling an in-flight server fetch on a watcher. (#1156)
  • Added option to Swift Codegen to pass in a prefix for custom scalars. (#1216)
  • Added ability to change a header on a websocket connection and automatically reconnect. (#1224)