AI-generated Key Takeaways
-
The Navigation SDK for iOS has undergone significant updates, including modernized UI with new map colors, turn card designs, and CarPlay support.
-
The SDK has improved functionality with bug fixes, API updates for better navigation accuracy and developer control, and enhanced developer tools like Swift Package Manager and CocoaPods support.
-
Platform updates ensure compatibility with newer iOS and Xcode versions, while freezing support for older ones, as well as providing greater map customization capabilities through cloud-based and data-driven styling, and advanced markers.
-
Early versions focused on basic navigation features, while recent releases prioritize advanced functionalities like traffic updates, alternative routes, two-wheeler mode, and developer customization options.
-
The SDK has continuously evolved to enhance user experience, reliability, and developer control with each release, addressing bugs, improving stability, and introducing new features.
Subscribe
to these release notes.
Release versions
For major releases (for example, 10.0.0), expect a major feature or features, additional smaller features and bug fixes, backwards incompatibility with the previous version, and dependency upgrade requirements.
For minor releases (for example, 9.2.0), expect minor features and bug fixes, backwards compatibility with the previous version, and minor version upgrades of a dependency.
For patch releases (for example, 9.2.1), expect bug fixes, backwards compatibility with the previous version, and patch upgrades of a dependency.
Dependencies and requirements
The table below shows the dependencies and requirements for the latest version of the Navigation SDK for iOS.
| SDK version | Minimum iOS deployment target | Minimum Xcode version |
|---|---|---|
| 10.x | 16.0 | 16.x.x |
November 20, 2025
The Navigation SDK for iOS version 10.6.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed. If you are a new user, see Set up your Google Cloud project to start the installation process. If you are an existing customer, see the upgrade instructions at Overview and requirements.
Real-time disruption configuration is now generally available. See the documentation.
October 13, 2025
Navigation voice guidance now references stop signs when describing upcoming maneuvers in the US, Japan, and Sweden.
October 02, 2025
The Navigation SDK for iOS version 10.4.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed. If you are a new user, see Set up your Google Cloud project to start the installation process. If you are an existing customer, see the upgrade instructions at Overview and requirements.
A crash can occur in Navigation SDK for iOS version 10.4.0 when using Real Time Disruption features. Interaction with on-route incidents can lead to this crash.
We recommend customers who use Real Time Disruption features not upgrade to version 10.4 at this time.
Narrow roads callouts now appear on users' routes. This feature is available for some areas in India when users are in four wheeled driving mode.
Callouts for unpaved road segments now appear on users' routes. This feature is available in the USA, Canada, and Sweden, when users are in four wheeled driving mode.
Callouts are no longer duplicated when the traffic layer is enabled.
Fixed a long-standing, low-probability bug that could cause crashes. The crashes were caused by a thread-safety issue that was exposed in improved iOS 26 crash analysis.
September 25, 2025
You can now use cloud-based maps styling to style both the navigation map and the road map by creating reusable styles associated with map IDs. See the documentation.
September 08, 2025
The Navigation SDK for iOS version 10.3.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed. If you are a new user, see Set up your Google Cloud project to start the installation process. If you are an existing customer, see the upgrade instructions at Overview and requirements.
Railroad crossing callouts now appear on users' routes. Only available in the USA and Canada.
Improved voice guidance messages. Guidance now includes counted turns and mention railway crossings.
Fixed an issue where the Trip Progress Bar could become too small to be usable when a large accessory view was displayed. The progress bar will now be hidden if its available height is below a minimum threshold (200 points).
August 18, 2025
CocoaPods is in maintenance mode as of 8/18/2025 and we won't release more versions of CocoaPods after Q2 2026. Use Swift Package Manager instead. See the installation page for information about using Swift Package Manager.
August 12, 2025
The Navigation SDK for iOS version 10.2.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed. If you are a new user, see Set up your Google Cloud project to start the installation process. If you are an existing customer, see the upgrade instructions at Overview and requirements.
3D buildings display during navigation. Displays 3D buildings (polygons with height) during turn-by-turn navigation. You can toggle this feature by using the Maps SDK buildingsEnabled: method. See the documentation.
Proximity check added for user-initiated voting mid-trip. To enhance map data quality, the Navigation SDK for iOS now checks whether a user-initiated vote on a real-time disruption was initiated near the incident.
The number of users who have reported an incident no longer appears in the incident callout.
The real-time disruptions button is not re-enabled if disabled programmatically when the reporting panel is dismissed.
The setDestinations() methods now reset the traveledPath property.
July 14, 2025
The Navigation SDK for iOS version 10.1.0 is now available. See the Release Notes for information about this release and for all previous releases or subscribe to the Release Notes XML feed. If you are a new user, see Set up your Google Cloud project to start the installation process. If you are an existing customer, see the upgrade instructions at Overview and requirements.
showsTrafficLights and showsStopSigns are deprecated and will be removed in a future release.
Custom buttons for real-time disruptions.
You can now create custom buttons to initiate the real-time disruptions (RTD) reporting flow.
The new reportIncidentsAvailable and presentReportIncidentsPanel methods have been added to the GMSMapView class. These methods allow you to:
- Check if incident reporting is available for the current navigation context.
- Display the incident reporting panel programmatically, enabling you to implement custom incident reporting buttons.
Maneuver callouts enabled. Callouts now appear before the next maneuver(s) that a user needs to make, not at the moment they need to make the maneuver.
Slowdown and stalled vehicle callouts disabled. Callouts now do not appear for slowdowns and stalled vehicles, and users are no longer able to vote or report on stalled vehicle incidents. This creates a more streamlined experience.
Added the ability to control the visibility of real-time disruption callouts using the shouldDisplayPrompts method. For more information, see Interactive disruption callouts along routes.
Fixed: Issue where background notifications were not replaced.
Fixed: The corner radius of the ETA card has been adjusted to match other Google UI elements.
Fixed: The real-time disruption button now moves vertically when mapPadding is added.
Version 4.0.0 (June 27, 2022)
- The Terms of Service dialogue shows new language.
- The Terms of Service dialogue shows new language.
Features
- You can now include ferries as part of your routing strategy. See Routes that include ferries.
- Support for iOS 12 is now frozen. The minimum iOS version is now 13.0.
- The new minimum version of Xcode is 13.0.
Version 3.2.1 (May 9, 2022)
Features
- Version bump with no feature changes. This version is functionally identical to v.3.2.0.
Version 3.2.0 (April 25, 2022)
Features
- Version bump with no feature changes. This version is functionally identical to v.3.1.1.
Version 3.1.1 (March 22, 2022)
Bug fixes
- Previous versions closed the terms of services dialog when a user clicked on the dimmed background.
Version 3.1.0 (March 9, 2022)
Features
You can now add a trip progress bar to display the details of the trip in a linear view on the trailing edge of the map. Enable it by setting the new
navigationTripProgressBarEnabledproperty in GMSUISettings.You can now subscribe to navigation state information (including step info, ETA, and remaining distance) through the
didUpdateNaveInfo:event listener in GMSNavigatorListener. See Building TurnByTurn navigation on small external screens.
Bug fixes
- Previous versions could trigger a single navigation event for multiple arrival events in a navigation session.
Version 3.0.3 (February 16, 2022)
Bug fixes Previous versions failed to launch for apps developed with
SceneDelegate because the Terms of Service dialog did not display. Now,
scene-based apps should correctly display the Terms of Service dialog and the
app will launch after user acknowledgement.
Version 3.0.2 (January 24, 2022)
Bug fixes
- Previous versions failed to launch for apps developed with SwiftUI because the Terms of Service dialog did not display. Now, SwiftUI-based apps should correctly display the Terms of Service dialog and the app will launch after user acknowledgement.
Version 3.0.1 (December 9, 2021)
Features
- Added stability improvements to the release.
Version 3.0 (November 29, 2021)
Features
Alternative map types, including Satellite, Terrain, and Hybrid maps, are now supported in navigation mode.
(Beta) This release contains a preview of support for the XCFramework format. You can now install the Navigation SDK for iOS as an XCFramework, a binary package that you can use on multiple platforms including machines using the M1 chipset.
Google recommends that you only use this Beta release for development and testing, and rely on the
.frameworkversion of the SDK for your production apps.
Support for iOS 11 is now frozen. The minimum iOS version is now 12.0.
The new minimum version of Xcode is 12.0.
Version 2.2 (October 19, 2021)
Features
- During navigation, display a dotted line from the last navigation point to the destination.
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 Google Maps Platform SDKs for iOS.
Navigation SDK for iOS v4.0 or higher will only support devices running a minimum of iOS 13.
Apps built with v3.x of the Maps SDK for iOS will continue to work for 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.
Steps to take
- In your Podfile or Cartfile, specify the 3.x versions of Navigation SDK for iOS. See examples of CocoaPods and Carthage dependencies for Maps and Places SDK for iOS.
- Each time you build a new version of your app, run
pod outdatedorcarthage outdatedto check for new versions of your CocoaPods or Carthage dependencies. See the guidance on app maintenance best practices. Don't upgrade to v4.0 or higher for Navigation SDK for iOS until you are ready to drop support of iOS 12 for your app.
Version 2.2 - Freezing support for iOS 11 (July 20, 2021)
In response to changes in our internal dependencies, we are freezing support of iOS 11 in an upcoming major version of Google Maps Platform SDKs for iOS. Earlier SDK versions will continue supporting iOS 11.
The following SDK versions will only support devices running a minimum of iOS 12:
- Maps SDK for iOS or Places SDK for iOS v6.0 or higher
- Navigation SDK for iOS v3.0 or higher
- Rides & Deliveries Driver or Consumer SDK v1.0 or higher
Apps built with v5.x of the Maps and Places SDKs for iOS and v2.x of the Navigation SDK will continue to work for iOS 11. 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 11.
Steps to take
- In your Podfile or Cartfile, specify the 5.x versions of Maps and Places SDKs, and version 2.0 for Navigation SDK, which were released earlier this year. See examples of CocoaPods and Carthage dependencies for Maps and Places SDK for iOS.
- Each time you build a new version of your app, run
pod outdatedorcarthage outdatedto check for new versions of your CocoaPods or Carthage dependencies. See the guidance on app maintenance best practices. Don't upgrade to v6.0 or higher for Maps and Places SDKs, or v3.0 or higher for Navigation SDK, until you are ready to drop support of iOS 11 for your app.
Version 2.1 (June 28, 2021)
Features
- Setting destinations with a route token now supports two-wheeler travel mode.
- Setting
followingZoomLevelnow takes effect immediately in following mode; after starting a new navigation session, the camera does not zoom out. - Added a
setTransactionIDs:errorHandlermethod inGMSNavigator. Use this method to set the ongoing transaction IDs which apply to the navigation events during the current navigation session.
- Support for iOS 11 will be frozen in an upcoming major version.
Version 2.0 (May 13, 2021)
Decommissions
- iOS 10 is no longer supported. The minimum OS is now 11.0.
- ARMv7 32-bit architecture no longer supported.
The deprecated
GMSNavigatorDelegateandGMSRoadSnappedLocationProviderDelegateprotocols will change the protocol names toGMSNavigatorListenerandGMSRoadSnappedLocationProviderListener, respectively. All previous delegate methods will exist in the new listeners, with the following exceptions.GMSNavigatorandGMSRoadSnappedLocationProviderremoved the deprecated propertydelegate. Instead, call methods-addListener:and-removeListener, respectively, to add or remove the replacement listeners.GMSNavigatorDelegatemethods- (NSTimeInterval)navigatorTimeUpdateThreshold:(GMSNavigator *)navigatorand- (CLLocationDistance)navigatorDistanceUpdateThreshold:(GMSNavigator *)navigatorare removed. Instead, set thetimeUpdateThresholdanddistanceUpdateThresholdproperties onGMSNavigatordirectly.
GooglePlaces.frameworkwon't be included in the Navigation SDK for iOS Zip package in the next Navigation SDK release. If you need the Places SDK in your application, follow the Places SDK for iOS installation instructions.
Version 1.16.0 (March 8, 2021)
- Support for iOS 10 will be dropped in version 2.0.0.
Features:
- Added a
navigationMapStyleproperty to theGMSUISettingsclass. The map will display 2D building outlines at zoom level 18+ when this property is set toGMSNavigationMapStyleHighDetail. - Added a
followingZoomLevelproperty to theGMSMapViewclass. You can use this property to set the zoom level when the camera is in following mode during navigation. - Added a
stopGuidanceAtArrivalproperty to theGMSNavigatorclass. You can use this property to determine whether guidance should automatically stop whennavigator:didArriveAtWaypoint:is called. - Updated the Objective-C and Swift demos.
Bug fixes:
- Fixed an issue where the SDK would crash when attempting to get the traveled path upon a navigator route change.
Version 1.15.1 (January 21, 2021)
Bug fixes:
- Fixes an issue where the camera mode
wouldn't switch to
GMSNavigationCameraModeFreeif set toGMSNavigationCameraModeFollowing.
Version 1.15.0 (December 8, 2020)
Features:
- Added crash detection during SDK initialization. In cases where two or more consecutive crashes are detected at initialization time, the SDK will attempt to restore functionality by automatically resetting cached client parameters and map tile data. A recovery attempt event will be logged unless the client has opted out of unexpected termination reporting.
Version 1.14.0 (October 13, 2020)
Features:
- Support for iOS 9.0 has been dropped. The new minimum is iOS 10.0.
- The new minimum version of Xcode is 11.7.
- By default, unexpected SDK terminations, such as app crashes while the SDK is
still running, are monitored to let Google to improve SDK stability when
applicable. There is also an option to opt-out by using the
setAbnormalTerminationReportingEnabled:API onGMSNavigationServices.
Version 1.13.0 (August 24, 2019)
Features:
- You can now pass a route token to the Navigation SDK to retrieve the route represented by that route token. The route token is associated with a route response when you call the Routes Preferred API. Learn more about custom routes.
- Added a
vehicleStopoverproperty to theGMSNavigationWaypointclass. This feature relocates the waypoint to a nearby place if its location is not suitable for a vehicle to make a stop. - Added a mutable waypoint class,
GMSNavigationMutableWaypointwhich lets you change some waypoint properties. - Added
GMSNavigatorListenerandGMSRoadSnappedLocationProviderListenerprotocols, which enable multiple classes to listen to important navigation and road snapping events.
Deprecations
GMSNavigatorDelegateandGMSRoadSnappedLocationProviderDelegateprotocols are deprecated as of August 24, 2020. Instead, useGMSNavigatorListenerandGMSRoadSnappedLocationProviderListener.
Note:
- To build apps using the Navigation SDK, the current minimum IDE version supported is Xcode 11.5.
Version 1.12.0 (December 2, 2019)
Features:
- You can now request routes with a target distance, so that routes will be
ranked by their absolute delta to the target distance from smallest to
largest. To do this, initialize
routingOptionsusing theinitWithTargetDistancesMeters(GMSNavigationRoutingOptions.h), and then callsetDistinations(GMSNavigator.h), passing the routing options.
Note:
- To build apps using the Navigation SDK, the current minimum IDE version supported is Xcode 11.0.
Version 1.11.0 (October 28, 2019)
Features:
Drivers can now receive speed alerts when they exceed speed limits. Speed alerts are enabled through
shouldDisplaySpeedometerand configurable throughGMSNavigationSpeedAlertOptionsandGMSNavigationSpeedometerUIOptions.- Updated the Terms of Service dialogue language.
Version 1.10.1 (October 9, 2019)
Stability and Bug fixes
- Fixed a race condition where getting the route leg can cause a crash during certain situations.
Version 1.10.0 (September 4, 2019)
Features:
- Added
alternateRoutesStrategytoGMSNavigationRoutingOptions. This lets the user select the number of alternate routes shown. - Added
routingStrategytoGMSNavigationRoutingOptions. This allows the returned routes to be ordered by either time or distance. - Added the ability to set the navigation header accessory view (secondary header).
- The visual appearance of the Terms and Conditions dialog is now fully customizable.
Stability and Bug fixes
- Fixed the Terms and Conditions dialog button text to match standard language.
Version 1.9.1 (July 29, 2019)
Stability and Bug fixes
- Improved how certain internal event listeners are deregistered when destinations are cleared.
Version 1.9.0 (June 26, 2019)
Features:
- The title of the 'Terms and Conditions' and 'Driver Awareness' dialogs are now customizable.
- Destinations can now be set with a side-of-the-road preference used for
routing considerations.
- Two-Wheeler travel mode (Beta): You can now set the travel mode to
TWO-WHEELERto get motorcycle and scooter routes. This feature is only available in India and Indonesia.
- Two-Wheeler travel mode (Beta): You can now set the travel mode to
Version 1.8.1 (February 6, 2019)
Stability and Bug fixes
- Taxi mode Fixed the camera and road snapping behaviors.
Version 1.8 (December 21, 2018)
Features:
Taxi mode - BETA: Your app can use the lanes and streets that are specifically dedicated to taxicabs to provide routing and Estimated Time of Arrival (ETA)s for vehicles identified as taxicabs.
The following geographical areas are supported:
- Brazil: Rio de Janeiro
- England: Birmingham, Coventry, London Metro Area, Manchester
- Israel: Tel Aviv
- Ireland: Edinburgh, Dublin
- Russia: Moscow
- Scotland: Glasgow
Spain: Madrid, Barcelona
Traffic status: Your app can report the level of congestion along a route using the
getSeveritymethod of theTimeAndDistanceclass.
Version 1.7.0 (Aug 27, 2018)
Features:
- A Directions List for the remaining turn instructions of the ride can be displayed through [GMSNavigationDirectionsListController directionsListView].
- The speed limit sign can be enabled and will be displayed when data is available through [GMSMapView shouldDisplaySpeedLimit].
Known issues
- A recent change in the map tile rendering code may cause a low-volume crash
with signature 'gmscore::renderer::GLState::BindBuffer'. This bug is not
known to occur on the Navigation API, but other google maps products with
shared code. We advise caution when using the 1.7.0 release. The iOS 1.3.4
release has an older version of the renderer and wouldn't exhibit this
release has an older version of the renderer and wouldn't exhibit this
crash.
New Style Default Opt-In for Nav SDK 1.6+ (Aug 21, 2018)
The new basemap style has been enabled by default in the Maps SDK for iOS, however it is NOT enabled for Nav SDK users. Compiling the Nav SDK and Maps SDK together will cause your project to be opted out of the new basemap style. Therefore, contrary to the instructions for the Maps SDK, Nav SDK users will need to explicitly opt-in.
To opt-in, use the code snippet below. The best place to do this in your app is right after providing your API key, using GMSServices provideAPIKey. You must be using at least Version 1.6 in order to opt-in.
NSArray *options = @[@"B3MWHUG2MR0DQW"]; BOOL didSetApiOptions = [GMSServices provideAPIOptions:options]; NSLog(@"Options were set: %d", didSetApiOptions);
Version 1.6.1 (July 13, 2018)
Stability and Bug fixes
- Fixed a compiler setting issue where movi.2d instructions are not generated as movi.16b
- Removed third-party BoringSSL dependency
Major Dependency Updates
- Added third-party OpenLocationCode dependency (https://github.com/google/open-location-code)
- Removed third-party BoringSSL dependency
Known issues
- A recent change in the map tile rendering code may cause a low-volue crash with signature 'gmscore::renderer::GLState::BindBuffer'. This bug is not known to occur on the Navigation API, but other google maps products with shared code. We advise caution when using the 1.6.1 release. The iOS 1.3.4 release has an older version of the renderer and wouldn't exhibit this crash.
Version 1.3.4 (July 13, 2018)
Stability and Bug fixes
- Fixed a compiler setting issue where movi.2d instructions are not generated as movi.16b
- Removed third-party BoringSSL dependency
Major Dependency Updates
- Added third-party OpenLocationCode dependency (https://github.com/google/open-location-code)
- Removed third-party BoringSSL dependency
Version 1.6 (May 10, 2018)
Stability and Bug fixes
- Added an error code which is returned when a stale Place ID is provided.
- Made sure the navigation header starts updating again automatically after being scrolled if the user catches up to the maneuver which they scrolled to.
- Route callouts no longer disappear while a user pans the map.
- When using simulated locations, guidance cards are no longer blank.
Version 1.3.3 (March 26, 2017)
Known issues
- Nav SDK doesn't have built-in support for iPhone X safe areas. When mapView.navigationEnabled is YES, the mapView won't automatically place map controls within the safe areas and the paddingAdjustmentBehavior property will have no effect.
- The location simulator may sometimes get into a state where multiple simulated location sources are active simultaneously. This can cause the navigation engine to stop working and present a grey navigation header to the user. This has not been observed when using real GPS location updates.
- Route ETA labels sometimes disappear whilst the user is panning the map.
- The navigation header won't automatically start updating again if the user scrolls the header and then drives past the maneuver they have scrolled to.
Bug fixes and improvements.
This version is functionally identical to v1.3.
Version 1.3.2 (Jan 23, 2017)
Added a mitigation for Open GL crashes with stack traces containing
gmscore::renderer::ios::GLRenderTarget::FrameEnd() where the process is killed
by SIGABRT. This change is expected to reduce the rate of these crashes but
not fix them completely. The underlying issue is believed to be in Apple's Open
GL implementation.
Version 1.3.1 (December 21, 2017)
Changed the build process for the frameworks to stop using the
-bitcode_hide_symbols flag in the prelinking stage. This causes non-exported
symbols to be included in the bitcode bundle which may allow app stack traces to
be symbolicated to a greater extent.
This version is functionally identical to v1.3.
Version 1.3 (November 6, 2017)
Features:
- Added a mapViewDidTapRecenterButton: method which is called on the GMSMapViewNavigationUIDelegate when the user taps the re-center button.
Resolved Issues:
- Fixed an issue where the distance to the next turn was not shown in the navigation header.
- Fixed an issue where the ETA for the current route was displayed unnecessarily when guidance is active and was not updated as navigation progressed.
Version 1.2 (October 26, 2017)
Resolved Issues:
- Fixed an issue where Google Navigation SDK for iOS would sometimes report a location unavailable error if the user was stationary.
Version 1.1.1 (October 24, 2017)
Features:
- Added the option to disable bluetooth audio output using the new
audioDeviceTypeproperty onGMSNavigator.
Resolved Issues:
- Fixed an issue where setting the
navigationFooterEnabledproperty toNOsometimes didn't work.
Version 1.1 (August 24, 2017)
- Miscellaneous bug fixes and improvements.
- NOTICE: Xcode 7 is no longer supported as of version 1.2.
Version 1.0 (July 5, 2017)
Launch of the Navigation SDK for iOS.