This section contains release notes for the Consumer SDK for iOS.

## v11.1.0 (September, 2026)

- Version bump for the 11.1.0 release.
- Minor bug fixes and internal dependency updates.

## v10.10.1 (May, 2026)

- \[Bug Fix\] Fixed a regression where trip updates could fail if specific fields were missing from the response.

## v10.10 (March, 2026)

- \[Bug Fix\] Changes were made to help ConsumerSDK recover more quickly if there is a network interruption during a trip.
- Consumer SDK was built with Xcode 26.

## v10.0.0 (Jun, 2025)

### Changed

- Support for iOS 15 is now frozen. The minimum iOS version is now 16.0.

### API changes

- Adds the `GMTSVehicleLocationOptions` class, where you can use the `serverTime` property to determine the time when the latest location update was received by Fleet Engine.
- Adds `initWithOptions<GMTSVehicleLocationOptions>` initializer in `GMTSVehicleLocation`
- Deprecates the `initWithLatLng:GMTSLatLng` initializer in `GMTSVehicleLocation`. Instead, use the `initWithOptions:<GMTSVehicleLocationOptions>` initializer.

## v9.2.1 (April, 2025)

### Changed

- Fixes undefined symbols error.

## v9.2 (January, 2025)

### Changed

- Version bump from 9.0 to 9.2.
- Supports [Cloud-based maps styling](https://developers.google.com/maps/documentation/ios-sdk/cloud-customization.md.txt).
- Supports users to retrieve the "Vehicle location" state during a trip.
- Fixes a rare issue where the polyline disappeared.

## v9.0 (July, 2024)

### Changed

- Supports Geo iOS SDKs v9.0.
- Support for iOS 14 is now frozen. The minimum iOS version is now 15.0.
- This release includes the .xcprivacy file to support Apple Privacy Manifests.
- Includes a potential fix for a rare logs-related crash.

## v3.3.0 (March, 2024)

### Changed

- Supports Driver and Consumer SDKs compatibility so they can be built in the same app.
- Supports Swift Package Manager for Driver and Consumer SDKs.

## v3.2.0 (December, 2023)

### Changed

- Bug fixes and documentation updates.

### Deprecated

- Deprecated `[GMTCMapView initWithCoder]` in `GMTCMapView`.

## v3.1.1 (October, 2023)

### Changed

- Fixes bug with `GMSMapViewDelegate` methods not being called.

## v3.1.0 (Sept, 2023)

### Changed

- [The CocoaPod](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/trip-order-progress/consumer-sdk/consumer_sdk_quickstart_ios#use-cocoapods) for Consumer SDK is now an **.xcframework** which supports both device and simulator builds for developers on both Intel- and Apple Silicon-based Macs.

## v3.0.1 (Aug, 2023)

### Changed

- Fixes undefined symbols error.

## v3.0.0 (May, 2023)

### Changed

- Removes deprecated initializer in `GMTCMapView`.
- Fixes continued auth token fetches after all subscribers have been removed from `GMTCTripModel`.
- Support for iOS 13 is now frozen. The minimum iOS version is now 14.0.
- The new [minimum supported version of
  Xcode](https://developers.google.com/maps/software-support#ide) is 14.0. Note the deprecations in the Xcode 14 [release notes](https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-14-release-notes) about the end of support for building with bitcode.
- According to the Mobile OS version support policy, we are freezing support for iOS 13 as of Consumer SDK for iOS v3.0.0. The new minimum supported OS is iOS 14. Earlier SDK versions will continue supporting iOS 13. If your dependencies don't specify a version number, your IDE will load the newest SDK version and new builds of your app won't support iOS 13. Specify a version of the Consumer SDK for iOS in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.

### Announcement

#### Freezing support for iOS 14 - May 15, 2023

According to the [Mobile OS version support
policy](https://developers.google.com/maps/software-support#mobile-os-version-support-policy), we are
freezing support for iOS 14 in an upcoming major version of Consumer SDK for
iOS.

Versions of Consumer SDK for iOS released beginning the second quarter of 2024
will support a minimum of iOS 15. Earlier SDK versions will continue supporting
iOS 14.

If your dependencies don't specify a version number, your IDE will load the
newest SDK version and new builds of your app won't support iOS 14.

[Specify a
version](https://developers.google.com/maps/documentation/ios-sdk/versions#installation) of the
Consumer SDK for iOS in your application's build dependencies in order to
control when you raise the minimum supported OS for new versions of your app.

## v2.2.0 (February, 2023)

### Changed

- Updates the URL for terms and conditions in the header files to the correct link, and fixes other minor issues with punctuation.
- Fixes various spelling, punctuation, and other minor errors were fixed in the documentation.

## v2.1.0 (September 12, 2022)

### Changed

- Bug fixes and documentation updates.

## v2.0.0 (July 18, 2022)

### Changed

- Removed the Terminal Point Service, which includes:

  - `GMTSTerminalPoint`
  - `GMTSTerminalPointAccessPoint`
  - `GMTSTerminalPointTravelMode`
  - `GMTSTerminalPointsVehicleSearchPreference`
  - `GMTSTravelModeETA`
- Support for iOS 12 is now frozen. The minimum iOS version is now 13.0.

### Deprecated

- Deprecated initializers in the public class GMTCMapView.

### Announcement

We are freezing support (deprecating) for iOS 13 in the 2023 major version updates for Consumer iOS SDK. The minimum iOS version supported will be iOS 14, starting in June 2023. Customers should prepare by changing the minimum version support flag in their code before they update.

## v1.0.6 (March 24, 2022)

Internal bug fixes.

## v1.0 (December 7, 2021)

The minimum supported iOS version for this release is 12.0.

### API changes

**Authentication changes**

- The SDK calls `getToken()` for your implementation of the `AuthTokenFactory` interface for each gRPC. The SDK accomplishes this by intercepting calls to Fleet Engine, and then attaching the returned JWT from `getToken()` to the HTTP authorization header. Note that it is up to you to generate valid tokens. That is, tokens that haven't expired, and that have proper claims.

- Changed `GMTSAuthorization` to `GMTCAuthorization`.

- Removed `GMTSServiceType`.

**Changes to trip information and callbacks**

- Updated the trip property name: `remainingDistanceOfActiveRouteInMeters`.

- Added traffic data updating to `GMTCTripModelSubscriber`.

- Added the property `remainingDistanceOfCurrentRouteInMeters`.

- Added new properties to `GMTSTripPropertyFields`:

  - `GMTSTripPropertyFieldRemainingDistanceOfActiveRouteInMeters`.
  - `GMTSTripPropertyFieldDistanceOfRemainingRouteInMetersGMTSTripPropertyFieldActiveRoute`.
  - `GMTSTripPropertyFieldActiveRouteTrafficGMTSTripPropertyFieldRemainingRoute`.
  - `GMTSTripPropertyFieldRemainingRouteTraffic`.
- Added new properties `remainingDistanceOfActiveRouteInMeters` and `distanceOfRemainingRouteInMeters` in `GMTSTrip`.

- `RegisterSubscriber` now starts trip monitoring automatically for a `tripModel`. `UnregisterSubscriber` will stop monitoring when there are no more subscribers. `ModelState` and `ModelOptions` were renamed to `state` and `options` respectively. `stop` and `start` were removed from the public header.

  - Renamed `modelState` to `state`.
  - Renamed `modelOptions` to `options`.
  - Removed `start()` and `stop()` in `TripModel`.

**Other API changes**

- Removed `GMTSTripPreview` and `GMTSTripPreviewVehicleOptions`.

- Removed the pickup point selection service, which includes:

  - `GMTSPickupPointArea`.
  - `GMTSPickupPointGroup`.
  - `GMTSPickupPointMatch`.

## Freezing support for iOS 12 - October 18, 2021

In response to changes in our internal dependencies, we are freezing
support for iOS 12 in an upcoming major version of Consumer SDK for iOS.

Consumer SDK for iOS v2.0 or higher will only support devices running
a minimum of iOS 13. Earlier SDK versions will continue to support iOS 12.

If your dependencies in CocoaPods or Carthage don't
specify a version number, Xcode will load the newest version and new builds of
your app won't support iOS 12.

Be sure to specify a version in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
See examples of specifying a version in [Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk/versions.md.txt#installation) documentation.
See the guidance on [app maintenance best practices](https://developers.google.com/maps/documentation/ios-sdk/versions.md.txt#maintenance).

## v0.11.0 (Sep 30, 2021)

### Changes

- Added crash detection during SDK initialization. There is also an option to opt out by using the [`setAbnormalTerminationReportingEnabled:`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_m_t_c_services#a769d70da41fb77912d58d9cf9762c0f9) API on `GMTCServices`.

### API changes

#### Name prefix updated for all the classes:

- **GRC** -\> **GMTC** , for example, *GRCMapView* -\> *GMTCMapView*.
- **GRS** -\> **GMTS** , for example, *GRSTrip* -\> *GMTSTrip*.

#### GMTSAuthorization API updated

- Added new key `kGMTSAuthorizationContextKeyTaskID` for specifying task ID in `authorizationContext` when
  [fetchAuthTokenForServiceType:authorizationContext:completion:](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/protocol_g_m_t_s_authorization-p#afd45357f807210a75f49172befb46ba3)
  is called.

- [GMTSServiceType](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/group___service_type#gab38a119e819c7fe35a490fe4e6911172) enum updated:

  | Old Value | New Value |
  |---|---|
  | `GMTSServiceTypeUnknown` | `GMTSServiceTypeUnspecified` |
  | `GMTSServiceTypeTripService` |   |
  | `GMTSServiceTypeVehicleService` | `GMTSServiceTypeVehicle` |
  | `GMTSServiceTypeTerminalPointService` |   |
  |   | `GMTSServiceTypeTask` |

## v0.10.0 (May 3, 2021)

### Changes

Deprecated support for iOS 10.x. The minimum supported iOS version is now 11.0.

### API changes

- Introduced
  [`GRCMutableMarkerStyleOptions`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_c_mutable_marker_style_options)
  to make journey sharing marker customization more convenient.

- Introduced [`tripModel:didUpdateRemainingRoute:`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/protocol_g_r_c_trip_model_subscriber-p#af520bc94ce942cbc8943538d1e2ae60a)
  and [`tripModel:didUpdateRemainingRouteDistance:`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/protocol_g_r_c_trip_model_subscriber-p#a0cc4dac6ca23967ce56f8259f02d2958)
  in the [`GRCTripModelSubscriber`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/protocol_g_r_c_trip_model_subscriber-p) protocol,
  for trip update callbacks when the remaining route or the distance has been updated.

## v0.9.0 (January 25, 2021)

### Improvements

- This release introduces [Traffic Aware Polylines](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/journey-sharing/traffic) for journey sharing.

### API changes

- Introduced [`GRCMutablePolylineStyleOptions`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_c_mutable_polyline_style_options) for polyline customization, which can be used to enable traffic polyline rendering for journey sharing.
- Added traffic data update callback in [`GRCTripModelSubscriber`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/protocol_g_r_c_trip_model_subscriber-p):
  - [`tripModel:didUpdateActiveRouteTraffic:`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/protocol_g_r_c_trip_model_subscriber-p#a8c744dc788ad57a41537adf62581ac80)
- Introduced [`GRSTrafficData`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_s_traffic_data).
- Added new property into [`GRSTripWaypoint`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_s_trip_waypoint) for traffic data access:
  - [`trafficData`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_s_trip_waypoint#adc6cfec2e0014445815c2cd6a3764488)
- Added new method in [`GRSTrip`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_s_trip) for traffic data access:
  - [`activeRouteTraffic`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_s_trip#ae6ff2934ccdc1ca20349beade5e144f0)
  - [`remainingRouteTraffic`](https://developers.google.com/maps/documentation/transportation-logistics/on-demand-rides-deliveries-solution/reference/consumer/ios/interface_g_r_s_trip#ae67d19d245482503ae00c630df2c8278)

## v0.6.7 (March 23, 2020)

### Improvements

- The route polyline is not displayed when the trip status is `ARRIVED_AT_PICKUP`.
- Off-route vehicle tracking has been improved (requires DriverSDK 1.15):
  - Vehicle tracking does not snap the vehicle to the route when the vehicle drives past the pickup point.
  - Vehicle tracking enables displaying the vehicle off the road; for example, in unmapped parking lots.
- Vehicle icons are no longer forced to a stale route when the driver's destination does not match the destination in Fleet Engine.
- Out-of-date trip responses are now dropped.

## v0.6.3 (December 16, 2019)

### Changes

- Added logs for trip request latency.

- Added logs for trip response errors.

## v0.5.4(86.0) (August 7, 2019)

### New features

- Multi destination support for Journey Sharing.

### API changes

- New trip status added to `GRSTripStatus`.

  - `GRSTripStatusEnrouteToIntermediateDestination`.
  - `GRSTripStatusArrivedAtIntermediateDestination`.
- New properties added to `GRSTrip`.

  - `intermediateDestinations`.
  - `intermediateDestinationIndex`.
- New callback API added to `GRCTripServiceSubscriber`.

  - `- (void)tripService:(GRCTripService *)service`
    `didUpdateETAToNextWaypoint:(NSTimeInterval)nextWaypointETA;`

  - `- (void)tripService:(GRCTripService *)service
    didUpdateIntermediateDestinations:
    (nullable NSArray<GRSTerminalLocation *> *)intermediateDestinations;`

- New marker type enum added to `GRCMapViewMarkerType`.

  - `GRCMapViewMarkerTypeIntermediateDestination`.
- New customizable marker type enum added to `GRCCustomizableMarkerType`.

  - `GRCCustomizableMarkerTypeIntermediateDestination`
- A new mapViewCustomerState was added to `GRCMapViewCustomerState`.

  - `GRCMapViewCustomerStateJourneySharing`
- Four `mapViewCustomerState` members were deleted from `GRCMapViewCustomerState`.

  - `GRCMapViewCustomerStateWaitingForPickup`
  - `GRCMapViewCustomerStateArrivedAtPickup`
  - `GRCMapViewCustomerStateEnRoute`
  - `GRCMapViewCustomerStateEndOfTrip`
- Four mapView callback APIs were deleted from `GRCMapView`.

  - `-(void)mapViewDidStartWaitingForPickup:(GRCMapView *)mapview;`
  - `-(void)mapViewDidUpdateDueToDriverArrived:(GRCMapView *)mapview;`
  - `-(void)mapViewDidStartTripEnroute:(GRCMapView *)mapview;`
  - `-(void)mapViewDidCompleteTrip:(GRCMapView *)mapview;`
- A new callback API was added into `GRCMapView`.

  - `- (void)mapViewDidStartJourneySharing:(GRCMapView *)mapView;`

### Improvements

- Update all remaining waypoint ETAs when the ETA to the first waypoint in the
  list changes.

- Force camera auto-recentering when the driver arrives at the pickup point.

- Camera bounds will include both the pickup and drop-off locations after a trip
  is booked, and before any matched vehicle location becomes available.

## v0.4.5(28.0) (June 26, 2019)

### New features

- Carpool support for journey sharing.

### API changes

- The `type` field was removed from `GRSTerminalLocation`.

### Bug fixes

- Route animation now happens only when the route segment is in sync, resulting
  in an improved user experience.

- Fixed the issue where a call to the API
  `isMarkerStyleOptionsCustomizedForType:` for
  `GRCCustomizableMarkerTypeSelectedDropoffPoint` always returned NO.

## v0.4.3 (May 17, 2019)

### New features

- Back to back support for Journey Sharing.
- Journey sharing now supports dynamic vehicle location reporting rate.

### API changes

#### GRCMapViewMarkerType

| Old Value | New Value |
|---|---|
| `GRCMapViewMarkerTypeSelectedPickup` | `GRCMapViewMarkerTypeSelectedPickupPoint` |
| `GRCMapViewMarkerTypeSelectedDropoff` | `GRCMapViewMarkerTypeSelectedDropoffPoint` |
| `GRCMapViewMarkerTypePickupCandidate` | `GRCMapViewMarkerTypeSuggestedPickupPoint` |
|   | `GRCMapViewMarkerTypeHighlightedPickupPoint` |
|   | `GRCMapViewMarkerTypeTripPreviewPickupPoint` |
|   | `GRCMapViewMarkerTypeTripPreviewDropoffPoint` |
|   | `GRCMapViewMarkerTypeTripPickupPoint` |
|   | `GRCMapViewMarkerTypeTripDropoffPoint` |

#### GRCMapView

| Old Value | New Value |
|---|---|
|   | `redrawRidesharingOverlays` |

#### GRCTripServiceSubscriber protocol

> [!NOTE]
> **Note:** If you don't replace these methods, the compiler won't raise any errors.

| Old Value | New Value |
|---|---|
| `tripService:didUpdateTripRoute:` | `tripService:didUpdateActiveRoute:` |
| `tripService:didUpdateRemainingDistance` | `tripService:didUpdateActiveRouteRemainingDistance` |
|   | `tripService:didUpdateRemainingWaypoints` |

#### GRCPolylineType

| Old Value | New Value |
|---|---|
| `GRCPolylineTypeTripRoute` | `GRCPolylineTypeActiveRoute` |
| `GRCPolylineTypeTripPreviewAutoRoute` | `GRCPolylineTypePreviewAutoRoute` |
| `GRCPolylineTypeTripPreviewTaxiRoute` | `GRCPolylineTypePreviewTaxiRoute` |
| `GRCPolylineTypeTripPreviewTruckRoute` | `GRCPolylineTypePreviewTruckRoute` |
| `GRCPolylineTypeTripPreviewTwoWheelerRoute` | `GRCPolylineTypePreviewTwoWheelerRoute` |
|   | `GRCPolylineTypeRemainingRoute` |

#### GRCPolylineStyleOptions

| Old Value | New Value |
|---|---|
|   | `zIndex` |

#### GRSTrip

| Old Value | New Value |
|---|---|
|   | `remainingWaypoints` property |
| `route` property |   |
| `remainingDistanceInMeters` property |   |
|   | `GRSTripWaypoint` |

### Improvements

- Reduced network consumption for journey sharing.
- Selected pickup candidate now highlighted.
- Compatible with Maps SDK v3.1.0

### Bug fixes

- Fixed an issue where markers didn't respond to tap for the second time.
- Fixed an issue where the mapView's camera bounds sometimes showed an unexpected viewport at the beginning time, after a trip was booked.
- Fixed a problem with the SDK Version API.