releases.shpreview
Apollo GraphQL/Apollo iOS

Apollo iOS

$npx -y @buildinternet/releases show apollo-ios
Mon
Wed
Fri
AprMayJunJulAugSepOctNovDecJanFebMarApr
Less
More
Releases6Avg2/moVersionsv2.0.5 → v1.25.5
Jul 12, 2023

Fixed

Deprecated

  • Deprecated APQConfig & operationIdentifiersPath in ApolloCodegenConfiguration.
    • These have been replaced with OperationDocumentFormat and OperationManifestFileOutput respectively. Please see the documentation for ApolloCodegenConfiguration for more information.
Jun 20, 2023

Though 1.3.0 is a minor version bump, some critical issues were addressed in this version that requires a small breaking change during the upgrade. While we strive to make the upgrade path for minor versions seamless, these issues could not be reasonably resolved without requiring this migration.

For a detailed explanation of the breaking changes and a guide on how to migrate to 1.3.0, see our migration guide.

Breaking

  • Using reserved keyword Type as in selection fields does not compile (#3006): See PR #3058. Thank you to @Nielssg for raising the issue.
  • Memory leak from InterceptorRequestChain when ending the chain with returnValueAsync (#3057): See PR #3070. Thank you to @marksvend for raising the issue.
Jun 15, 2023

Added

  • Support SOCKS proxies for debugging websocket based subscriptions(#2788): Thank you to @tahirmit for the contribution.

Fixed

  • Fix conversion of generated models into nested type cases (#2989 & #2980): In some cases, the generated models were missing types when calculating which fragments were fulfilled for a selection set. This was causing type case conversion to return nil incorrectly. See PR #3067. Thank you to @tgyhlsb and @dafurman for raising these issues.
  • Fix crashes in code generation when merging fragments at definition root (#3071): When fragments with type conditions were defined on the root of an operation or named fragment, the code generation engine was crashing. See PR #3073. Thank you to @tahirmit for raising and helping us reproduce this issue.
  • Fix parsing of input objects as default values for input params (#2978): The codegen engine will no longer crash in this situation. Thank you to @ecunha-ta for raising the issue.
Jun 2, 2023

Improved

  • Added new validation to alert users to type naming conflict when running code generation(#2405): See PR #3041.

Fixed

  • Int values failing to cast to Scalar Type during cache key resolution (#3034): See PR #3037. Thank you to @asbhat for raising the issue.
  • Fix malformed RootEntityType on generated fragment with @include condition. (#2962): See PR #3045. Thank you to @alexisbronchart for raising the issue.
May 16, 2023

Though 1.2 is a minor version bump, a critical problem was addressed in this version that requires a small breaking change during the upgrade. While we strive to make the upgrade path for minor versions seamless, this issue could not be reasonably resolved without requiring this migration.

For most users, this migration will only require a single change to your SchemaConfiguration.swift file.

For a detailed explanation of the breaking changes and a guide on how to migrate to v1.2, see our migration guide.

Breaking

  • Cache Key Configuration API Changes (#2990): The API for configuring custom cache keys has had a minor change in this version. The signature of the cacheKeyInfo(for:object:) function, defined in your generated SchemaConfiguration.swift file, has been modified. For more information, see our migration guide.

Improved

  • Improved performance of GraphQL execution (#2990): Improvements to the GraphQLExecutor resulted in a ~15-20% reduction in execution time for parsing and mapping network response or cache data onto generated models.
  • Improved performance of generated model initialization and type conversions (#2990): The DataDict used to store the data for generated models has been updated to use copy-on-write value semantics. This resulted in a ~70-80% reduction in the execution time of initialization and type case conversions in the generated models.

Fixed

  • Pruning generated files for .relative(subpath:) operations (#2969): See PR #2994. Thank you to @jimisaacs for raising the issue.
  • InputObjects generated with incorrect getter/setter key (#2858): See PR #2996. Thank you to @Austinpayne for raising the issue.
  • Generates conflicting types for fields of singular and plural names (#2850): See PR #3009. Thank you to @sgade for raising the issue.
  • Equality operator shows incorrect values based on value of __fulfilled (#2944): See PR #2990. Thank you to @scottasoutherland for raising the issue.

New

May 1, 2023

Fixed

  • @dynamicMember conflicting field name (#2950): The subscript setters have been changed to allow a selection set property named hash. #2965 Thank you to @renanbdias for raising the issue.
  • Disallow certain targetNames in code generation (#2958): apollo is no longer allowed as a target name otherwise it causes a conflict when importing Apollo as a module. #2972 Thank you to @moopoints for raising the issue.
  • Fully Qualify name of RootEntityType and mergedSources (#2949): Selection set types use fully qualified namespacing to prevent conflicts with other types. #2956 Thank you to @martin-muller for raising the issue.
  • SelectionSet Codegen __typename fix (#2955): Custom root types defined in the schema are now correctly applied to selection set fields typename definitions #2983 Thank you to @ynnadrules for raising the issue.
Apr 12, 2023

Fixed

  • Crash after calling cancel() on Cancellable (#2932): Calling cancel() on a non-subscription Cancellable will now correctly handle the lifetime of the internally Unmanaged object. #2943 - Thank you to @yonaskolb for raising the issue.
  • Deprecation messages are not escaped (#2879): If escaped characters are used in GraphQL deprecation messages they are now properly escaped in the rendered Swift warning or attribution message. #2951 Thank you to @djavan-bertrand for raising the issue.

Added

  • Add injecting additionalErrorHandler for upload operations to RequestChainNetworkTransport (#2948): Upload operations can now have custom error interceptors like other operations. #2948 Thank you to @RobertDresler for the contribution.
Apr 6, 2023

Fixed

  • Version 1.1.0 does not compile when installed via CocoaPods (#2936): Module names not present in CocoaPods builds have been removed from type declarations. #2937 - Thank you to @simonliotier for raising the issue.
  • Crash when using mocks for Double Nested Arrays (#2809): Test mock data is now correctly applied to the selection set. #2939 - Thank you to @scottasoutherland for raising the issue.
  • In 1.1.0, passing custom scalars or GraphQLEnum to mocks fails (#2928): Test mock data is now correctly applied to the selection set. #2939 - Thank you to @scottasoutherland for raising the issue.
Apr 3, 2023

Apollo iOS v1.1 primarily focuses on adding generated initializers to the generated operation models.

In most cases, the upgrade from v1.0 to v1.1 should require no changes to your code.

Breaking

  • Changed generated fragment accessors with inclusion conditions: When conditionally spreading a fragment with an @include/@skip directive that has a different parent type than the selection set it is being spread into, the shape of the generated models has changed.
    • For example, a fragment accessor defined as ... on DetailNode @include(if: $includeDetails) would have previously been named asDetailNode; it will now be generated as asDetailNodeIfIncludeDetails.
  • While no breaking changes were made to official public APIs, some underscore prefixed APIs that are public but intended for internal usage only have been changed.
    • SelectionSet fulfilled fragment tracking: SelectionSet models now keep track of which fragments were fulfilled during GraphQL execution in order to enable conversions between type cases. While this does not cause functional changes while using public APIs, this is a fundamental change to the way that the underlying data for a SelectionSet is formatted, it is now required that all SelectionSet creation must be processed by the GraphQLExecutor or a generated initializer that is guaranteed to correctly format the data. This means that initializing a SelectionSet using raw JSON data directly will no longer work. Please ensure that raw JSON data is only used with the new RootSelectionSet.init(data: variables) initializer.

Fixed

  • Null/nil value parsing issues. In some situations, writing/reading null or nil values to the cache was causing crashes in 1.1 Beta 1. This is now fixed.

Added

  • Configuration option for generating initializers on SelectionSet models: You can now get initializers for your generated selection set models by setting the selectionSetInitializers option on your code generation configuration. Manually initialized selection sets can be used for a number of purposes, including:
    • Adding custom data to the normalized cache
    • Setting up fixture data for SwiftUI previews or loading states
    • An alternative to Test Mocks for unit testing
  • Safe initialization of SelectionSet models with raw JSON: In 1.0, initializing SelectionSet models with raw JSON was unsafe and required usage of underscore prefixed APIs that were intended for internal usage only. Apollo iOS 1.1 introduces a new, safe initializer: RootSelectionSet.init(data: variables).
    • Previously, if you provided invalid JSON, your selection set's were unsafe and may cause crashes when used. The new initializer runs a lightweight version of GraphQL execution over the provided JSON data. This quickly parses, validates, and transforms the JSON data into the format required by the SelectionSet models. If the provided data is invalid, this initializer throws an error, ensuring that your model usage is always safe.
  • Added support for multipart subscriptions over HTTP.

Changed

  • Generate __typename selection for generated models: In 1.1, the code generator adds the __typename field to each root object. In previous versions, this selection was automatically inferred by the GraphQLExecutor, however generating it directly should improve performance of GraphQL execution.
Mar 25, 2023
1.1.0 Beta #1

This is the first Beta Release of Apollo iOS 1.1. Version 1.1 primarily focuses on adding generated initializers to the generated operation models.

While no breaking changes were made to official public APIs, some underscore prefixed APIs that are public but intended for internal usage only have been changed.

Added

  • Configuration option for generating initializers on SelectionSet models: You can now get initializers for your generated selection set models by setting the selectionSetInitializers option on your code generation configuration. Manually initialized selection sets can be used for a number of purposes, including:
    • Adding custom data to the normalized cache
    • Setting up fixture data for SwiftUI previews or loading states
    • An alternative to Test Mocks for unit testing
  • Safe initialization of SelectionSet models with raw JSON: In 1.0, initializing SelectionSet models with raw JSON was unsafe and required usage of underscore prefixed APIs that were intended for internal usage only. Apollo iOS 1.1 introduces a new, safe initializer: RootSelectionSet.init(data: variables).
    • Previously, if you provided invalid JSON, your selection set's were unsafe and may cause crashes when used. The new initializer runs a lightweight version of GraphQL execution over the provided JSON data. This quickly parses, validates, and transforms the JSON data into the format required by the SelectionSet models. If the provided data is invalid, this initializer throws an error, ensuring that your model usage is always safe.
  • Added support for multipart subscriptions over HTTP.

Changed

  • SelectionSet fulfilled fragment tracking: SelectionSet models now keep track of which fragments were fulfilled during GraphQL execution in order to enable conversions between type cases. While this does not cause functional changes while using public APIs, this is a fundamental change to the way that the underlying data for a SelectionSet is formatted, it is now required that all SelectionSet creation must be processed by the GraphQLExecutor or a generated initializer that is guaranteed to correctly format the data. This means that initializing a SelectionSet using raw JSON data directly will no longer work. Please ensure that raw JSON data is only used with the new RootSelectionSet.init(data: variables) initializer.
  • Generate __typename selection for generated models: In 1.1, the code generator adds the __typename field to each root object. In previous versions, this selection was automatically inferred by the GraphQLExecutor, however generating it directly should improve performance of GraphQL execution.
  • Changed generated fragment accessors with inclusion conditions: When conditionally spreading a fragment with an @include/@skip directive that has a different parent type than the selection set it is being spread into, the shape of the generated models has changed. This does not affect generated call sites, but only affects the generated selection metadata used internally by the GraphQLExecutor.
Feb 9, 2023

Fixed

  • Couldn't build when using some reserved words in a schema (#2765): for has been added to the list of reserved keywords that are escaped with backticks when used in schema types and operations. #2772 - Thank you to @torycons for raising the issue.
  • Subscript GraphQL variable from dictionary crash when Swift modifier used as key (#2759): Backticks have been removed from subscript keys of input objects. #2773 - Thank you to @SzymonMatysik for raising the issue.
  • Unnamed fields in schema results in broken generated Swift code (#2753): The _ character can be used as a GraphQL field name. #2769 - Thank you to @neakor for raising the issue.
  • LocalCacheMutation with an enum field fails (#2775): When writing selection set data back into the cache, custom scalars are now re-encoded back into their _jsonValue. #2778 - Thank you to @dabby-wombo for raising the issue.
  • DataDict subscript function crashes on iOS 14.4 and under (#2668): AnyHashable conversions when accessing DataDict properties now perform checks on the base type. #2784 - Thank you to @bdunay3 for raising the issue.
  • @include directive based on variable with default value drops the included data (#2690): The GraphQL executor will now correctly evaluate GraphQLNullable conditional variables. #2794 - Thank you to @klanchman for raising the issue.
  • Interfaces implemented by schema root are not generated (#2756): Interfaces references on the root type Query, Mutation or Subscription are now included in the schema module. #2816 - Thank you to @litso for raising the issue.

Changed

  • HTTP headers format in schema download configuration JSON (#2661): HTTPHeaders in the ApolloSchemaDownloadConfiguration section of the codegen configuration JSON file can now be specified using the more intuitive format { "Authorization": "<token>"}. #2811 - Thank you to @nikitrivedii for raising the issue.
Jan 10, 2023

Fixed

  • Quotes in operation identifiers are not escaped (#2671): Query strings are now enclosed within extended delimiters to allow inclusion of special characters such as quotation marks. #2701 - Thank you to @StarLard for raising the issue.
  • Cannot find type graphQLSchema in scope (#2705): Generated fragments now use the correct schema namespace casing. #2730 - Thank you to @iAmericanBoy for raising the issue.
  • Updating a local cache mutation with an optional field fails with a ApolloAPI.JSONDecodingError.missingValue error (#2697): Cache mutations will now allow incomplete data to be written to the cache without expecting all fields to be set. Please note that cache manipulation is an advanced feature and you should be aware of how the data written will affect network requests and cache policies. #2751 - Thank you to @amseddi for raising the issue.
  • GraphQLEnum value camel case conversion strategy (#2640), (#2749): The camel case conversion logic for GraphQL enums has been improved to handle a wider range of edge cases that were causing invalid Swift code generation. #2745 - Thank you to @ddanielczyk and @hispanico94 for raising the issues.
  • Naming collision with Selection type from apollo (#2708): ParentType and Selection types in generated selection sets now use a fully qualified namespace to prevent typename conflicts. #2754 - Thank you to @tahirmt for raising the issue.
  • Namespace collision when using "Schema" for schemaName (#2664): Certain strings are now disallowed for use as the schema namespace. #2755 - Thank you to @StarLard for raising the issue.
  • Naming collision with fragments and scalars (#2691): Shared referenced schema types will always use the fully qualified names as the types of fields in selections sets. This prevents collisions with names of other generated selection sets for entity type fields whose names are the same as a referenced schema type. #2757 - Thank you to @scottasoutherland for raising the issue.
  • Naming collision with DocumentType in generated mock code (#2719): All shared referenced schema types within test mocks now use a fully qualified named type. #2762 - Thank you to @dafurman for raising the issue.
  • Schema/Target/Module name with spaces in it breaks generated code (#2653): Spaces are no longer allowed in the schema namespace. Additional validation has been added to the CLI commands to provide the correct error response. #2760 - Thank you to @Narayane for raising the issue.

Changed

  • Raised minimum required tooling versions: Swift 5.7 and Xcode 14 are now the minimum required versions to build Apollo iOS and the generated code. #2695
Nov 21, 2022

Fixed

  • Fixed - Missing SPM plug-in: The missing Swift Package product has been added and the Install CLI plug-in is now available from the SPM command line and the Xcode project menu. #2683
Nov 18, 2022

Fixed

  • Fixed - Convenience initializer for mock objects without fields: When mock objects did not have any fields a convenience initializer would still be generated causing infinite recursion during initialization. #2634 Thank you to @Gois for the contribution!
  • Fixed - Ambiguous use of operator '??': When the nil coalescing operator was used on variables without a type the compiler could not determine which one to use. #2650. Thanks to @skreberem for raising the issue.
  • Fixed - Generate library for test mock target: Previous versions would generate the SPM target for test mocks but not a library to properly import it into your unit tests. #2638 Thank you to @Gois for the contribution!
  • Fixed - Podspec Swift version mismatched with SPM package version: The Swift version is now the same between the two dependency managers. #2657
  • Fixed - Conflicting configuration values: There is now an error during code generation when the given configuration has conflicting values that cannot be fulfilled. #2677
  • Fixed - DocumentType namespacing: The correct module namespacing is now used for DocumentType in generated operation code. #2679

New

  • New - CLI version checker: This ensures that the version of the CLI being used to generate Swift code is the same as the version of the Apollo iOS dependency being used. #2659

Changed

  • Changed - Removed SPM plug-ins: The SPM plug-ins for the CLI commands init, fetch-schema, and generate have been removed. There is a new plug-in to install the CLI and the CLI commands should be used from the command line instead. #2649
  • Changed - CLI defaults: The updated default for the output of operation files is now .inSchemaModule, and the init command now requires a module type to be specified when creating a configuration file. #2673
Nov 2, 2022
  • Fixed - Generated code produces compile error when accessing data dictionary in the InputDict struct if the name of the accessed property is hash: Dyanamic Member Lookup has been removed from InputDict to prevent potential name clashes. #2607
  • Fixed - XCFramework archive builds: @inlinable has been removed from parts of ApolloAPI that were preventing xcframework builds with the BUILD_LIBRARY_FOR_DISTRIBUTION build setting. #2613
  • Fixed - Variables type in local cache mutations is not properly namespaced: The Variables type in LocalCacheMutation now has the required prefix of GraphQLOperation to build successfully. #2615
  • Fixed - Return error if no matches to schema or operation search paths: When a schema file could not be found errors were emitted but they were not indicative of the underlying problem. There is now validation to ensure that at least one match of the schema/operation search paths is found otherwise an error is thrown. #2618
  • Fixed - File generation should ignore the .build/.swiftpm/.Pods folders: If code generation was executed from a path where subfolders contained the apollo-ios repo, it would find internal test schemas and fail. These special folders are now ignored. #2628
  • Fixed - Download schema relative to root URL: Even though a root URL could be provided it was not being used in all schema download logic to output the downloaded schema file to the correct locaiton. This is now fixed. #2609 Thanks to @Anteo95 for the contribution.
Oct 22, 2022
  • Fixed - Not generating code for subtypes only used as input to mutations: If you are using a JSON format schema that was fetched via GraphQL introspection code generation will now generate all referenced subtypes. #2583 Thank you to @vrutberg for reporting the issue.
  • Fixed - When using the test mock, touching a GraphQLEnum property will cause a crash: JSON Encoding the mocks into the SelectionSet.DataDict was causing CustomScalar values to get encoded into their JSON values. The mock data is now converted into the correct format for the SelectionSet.DataDict. #2584 Thank you to @asapo for reporting the issue.
  • Fixed - Add namespace for ApolloAPI types in generated code: The Apollo DocumentType enum is now correctly namespaced in generated code. #2585 Thank you to @matijakregarGH for reporting the issue.
  • Fixed - Problems with schema name in generated code:
    • Schema name is now correctly cased for generated code namespacing. #2586 Thank you to @pchmelar for reporting the issue.
    • The schema name is now not allowed to match any referenced schema type, entity field, or entity list field names. #2589
  • Fixed - Test mocks crash when touching array of objects: Test mock list of objects is now correctly converted into selection set data. #2591 Thank you to @konomae for reporting the issue.
  • Fixed: GraphQLNullable nil coalescing: @exported import statements now ensure that the operator overload is imported when using the generated models. #2600 Thank you to bassrock for reporting the issue.
Oct 12, 2022

Fixes

  • Fixed - apollo-ios-cli code generation on CocoaPods installation: All required resources for the CLI are now bundled correctly. This was an issue in CocoaPods installations where the generate command of apollo-ios-cli would result in a fatal error. #2548 Thank you to @ilockett for reporting the issue.
  • Fixed - Xcode integration for Swift Package Plugins: The SwiftPM plugins now support XcodePluginContext from Xcode 14 and accepts the additional command line options that Xcode sends. #2554 Thank you to @SilverTab for reporting the issue.
  • Fixed - Escaping input param names: Input parameter names recognized as reserved words are now escaped to prevent build errors. #2561 Thank you to @puls for the contribution.
  • Fixed - Multiline deprecation messages: Deprecation messages that span multiple lines would previously result in build errors. #2579 Thank you to @TizianoCoroneo for the contribution.

Changes

  • Changed - Warnings for deprecated enums: Deprecated enum cases are no longer annotated with the Swift @available attribute. They will now have comments indicating their deprecated status. #2579
Oct 2, 2022

This is the first major version release of Apollo iOS! The primary goal of Apollo iOS 1.0 is to stabilize the API of the model layer and provide a foundation for future feature additions and evolution of the library.

In a nutshell, v1.0.0 brings:

  • A new code generation engine built entirely in Swift
  • Improvements to the generated models
  • Syntax and performance improvements across the entire library

There is documentation and a blog post coming soon. Feel free to ask questions by either opening an issue on our GitHub repo, or joining the community.

Thank you to all contributors who have helped us get to this first major release! ❤️

Sep 21, 2022
1.0.0 Release Candidate #1

This is the first Release Candidate for Apollo iOS 1.0. The Release Candidate is a fully featured and code-complete representation of the final 1.0 version. This includes full feature parity with the 0.x.x releases.

API breaking changes are not expected between the Release Candidate and the General Availability (GA) release. The only code changes will be non-breaking bug fixes due to user feedback. The Release Candidate does not have complete documentation or usage guides, which will be completed prior to GA.

This first major version will include a new code generation engine, better generated models, and many syntax and performance improvements across the entire library. The primary goal of Apollo iOS 1.0 is to stabilize the API of the model layer and provide a foundation for future feature additions and evolution of the library.

  • New: Option to Include Deprecated Input Arguments on Fields During Schema Download Thanks to @dave-perry for this addition!
  • Fixed: Code Generation Config JSON File Compatibility
    • Previously, the apollo-codegen-config.json file used by the Apollo CLI needed to contain values for all optional fields. When new codegen options were added, this would cause errors until all newly added options has values provided.
    • The Codable implementation for the ApolloCodgenConfiguration has been implemented manually to prevent this. Now, only required fields must be provided, all optional fields can be omitted from the config file safely.
    • The CLI's init command also now generates a template config file with only the required fields.
  • Fixed: Swift Keywords are escaped when used as names of Input Parameters
  • Fixed: Compilation Error when using @skip and @include conditions on the same field
  • Fixed: Added permissions request to SPM Code Generation Plugin
    • When running the code generation plugin, you will be prompted to give permission for the plugin to write to the package directory.
    • This permission check can be avoided by passing the --allow-writing-to-package-directory flag when executing the plugin command.
  • Fixed: APQ Operations Will no Longer be Retried when Unrecognized if using .persistedOperationsOnly
    • .persistedOperationsOnly is for use with allow-listed operations only. If an operation identifier is not recognized by the server, there is no way to register the operation in this configuration.
  • Breaking: Updated ApolloAPI internal metadata properties to be __ prefixed.
    • Generated GraphQL files expose certain properties/functions that are consumed by the Apollo library during GraphQL Execution. These members must be public in order to be exposed to Apollo, but are not intended for external consumption. We have added underscore prefixes to each of these members to signify that intention, using __ for GraphQL Metadata (in alignment with the GraphQL Specification) and _ for Apollo's utility and helper functions.
    • The affected signatures are:
      • SelectionSet.schema -> SelectionSet.__schema
      • SelectionSet.selection -> SelectionSet.__selection
      • JSONEncodable.jsonValue -> JSONEncodable._jsonValue
      • JSONDecodable.init(jsonValue:) -> JSONDecodable.init(_jsonValue:)
      • AnyHashableConvertible.asAnyHashable -> AnyHashableConvertible._asAnyHashable
      • OutputTypeConvertible.asOutputType -> OutputTypeConvertible._asOutputType
      • GraphQLOperation.variables -> GraphQLOperation._variables
      • LocalCacheMutation.variables -> LocalCacheMutation._variables
Sep 10, 2022
1.0.0 Beta 4

This is the fourth Beta Release of Apollo iOS 1.0. The Beta version has full feature parity with the 0.x.x releases. The API is expected to be mostly stable. Some breaking changes may occur due to user feedback prior to General Availability (GA) Release. The Beta does not have complete documentation or usage guides, which will be completed prior to GA.

This first major version will include a new code generation engine, better generated models, and many syntax and performance improvements across the entire library. The primary goal of Apollo iOS 1.0 is to stabilize the API of the model layer and provide a foundation for future feature additions and evolution of the library.

  • Breaking: Generated Files now have the file extension .graphql.swift.
    • This allows you to clearly distinguish which files in your project are Apollo generated files.
    • Generated template files that are user-editable will still have the .swift file extension.
      • CustomScalar templates as well as the SchemaConfiguration file are user-editable. Once these are generated, they are never overwritten by future code generation execution.
    • This change is also necessary for the identification of generated files for the pruning functionality.
  • New: Pruning of Unused Generated Files
    • Generated files that no longer should exist are automatically deleted now. This occurs when a .graphql file is removed from your project. The generated file will also be deleted the next time code generation is run.
    • This can be disabled with the new pruneGeneratedFiles codegen option.
    • Breaking: Automatic Deletion will not delete files generated in previous Alpha/Beta versions.
      • Only files with the .graphql.swift file extension will be deleted.
      • If you have used previous Alpha/Beta versions, you will need to delete your generated files manually one last time before running code generation with this version.
  • New: Enum Case Names are Converted to Camel Case in Generated Enums.
    • Breaking: This is enabled by default, your call sites will need to be updated.
    • Camel case conversion for enum cases can be disabled with the new conversionStrategies.enumCases codegen option.
    • Thanks @bannzai for this one!
  • Fixed: Swift Keywords are escaped when used as names of Enum Values Thanks @bannzai for the fix!
  • Fixed: Compilation Error when Using Fragment with Lowercased Name This was an edge case that only occured when referencing a nested, merged selection set from the lowercase named fragment.
  • Fixed: Retain Cycle in ReadTransaction Thanks @lorraine-hatch for the fix!
  • Fixed: String jsonValue Initializer for Large Numbers Thanks @Almaz5200 for the fix!
Latest
1.25.5
Tracking Since
Sep 2, 2021
Last checked Apr 19, 2026
Apollo iOS — Apollo GraphQL — releases.sh