releases.shpreview
Mapbox/Mapbox Navigation iOS

Mapbox Navigation iOS

$npx @buildinternet/releases show mapbox-navigation-ios
Mon
Wed
Fri
MayJunJulAugSepOctNovDecJanFebMarApr
Less
More
Releases20Avg6/moVersionsv3.19.0-beta.1 → v3.23.0
Apr 1, 2025

Packaging

Audio

  • Improved AVAudioSession handling for playback of the reroute sound and voice instructions. Activation and deactivation of AVAudioSession no longer occur on the main thread, and these operations are synchronized. This eliminates UI freezes that occurred to a lesser extent during activation and to a greater extent during deactivation.

Routing

  • Waypoint object is extended with TimeZoneInformation.

API Deprecations

  • The extension for AVAudioSession is no longer supported and has been deprecated, which affects the following methods:
    • AVAudioSession.tryDuckAudio()
    • AVAudioSession.tryUnduckAudio()

CarPlay

  • Forwarded shapes for waypoints from CarPlayNavigationViewControllerDelegate to NavigationMapViewDelegate.

Simulation

  • Fixed case when route refresh or an alternative route selection causes the simulation progress reset.

Other changes

  • Fixed the crash on RouteOptions initialization with url query items with invalid target coordinates parameters set. The failure pattern is:
    • Use the RouteOptions.init(waypoints:profileIdentifier:queryItems:) initializer.
    • Build options with wayipoints treated as a stops. More information here: Silent waypoints
    • Provide optional parameter waypoint_targets query item with empty data for at least one waypoint. It may look like this: waypoint_targets=;-86.790838,36.152884. More information here: Optional parameters
  • Updated localized strings, replaced English values in translations.
  • Fixed a bug when CarPlayNavigationViewController showed a midpoint arrival view even when arrived at the final destination.
Mar 28, 2025

Packaging

Mar 20, 2025

Packaging

Other changes

  • Fixed the crash on RouteOptions initialization with url query items with invalid target coordinates parameters set. The failure pattern is:
    • Use the RouteOptions.init(waypoints:profileIdentifier:queryItems:) initializer.
    • Build options with wayipoints treated as a stops. More information here: Silent waypoints
    • Provide optional parameter waypoint_targets query item with empty data for at least one waypoint. It may look like this: waypoint_targets=;-86.790838,36.152884. More information here: Optional parameters
Mar 19, 2025

Changes since v2.19.0:

Other changes

Audio

  • Improved AVAudioSession handling for playback of the reroute sound and voice instructions. Activation and deactivation of AVAudioSession no longer occur on the main thread, and these operations are synchronized. This eliminates UI freezes that occurred to a lesser extent during activation and to a greater extent during deactivation.

API Deprecations

  • The extension for AVAudioSession is no longer supported and has been deprecated, which affects the following methods: Documentation is available online or within Xcode.
Mar 4, 2025

Packaging

Audio

  • Improved AVAudioSession handling for playback of the reroute sound and voice instructions. Activation and deactivation of AVAudioSession no longer occur on the main thread, and these operations are synchronized. This eliminates UI freezes that occurred to a lesser extent during activation and to a greater extent during deactivation.

Routing

  • Waypoint object is extended with TimeZoneInformation.

API Deprecations

  • The extension for AVAudioSession is no longer supported and has been deprecated, which affects the following methods:
    • AVAudioSession.tryDuckAudio()
    • AVAudioSession.tryUnduckAudio()

CarPlay

  • Forwarded shapes for waypoints from CarPlayNavigationViewControllerDelegate to NavigationMapViewDelegate.

Simulation

  • Fixed case when route refresh or an alternative route selection causes the simulation progress reset.
Feb 17, 2025

Packaging

API deprecations:

  • MapboxCopilot.startActiveGuidanceSession(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSession(), and MapboxCopilot.completeNavigationSession() are deprecated in favor of MapboxCopilot.startActiveGuidanceSessionAsync(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSessionAsync(), MapboxCopilot.completeNavigationSessionAsync(). Using deprecated methods may lead to losing events in the recorded history files.
  • The following methods are deprecated and should no longer be used, as the final destination annotation is no longer added to the map:
    • NavigationViewControllerDelegate.navigationViewController(_:didAdd:pointAnnotationManager:)
    • CarPlayNavigationViewControllerDelegate.carPlayNavigationViewController(_:didAdd:pointAnnotationManager:)
    • CarPlayMapViewControllerDelegate.carPlayMapViewController(_:didAdd:pointAnnotationManager:)
    • CarPlayManagerDelegate.carPlayManager(_:didAdd:to:pointAnnotationManager:)

CarPlay:

  • Deprecated following methods which return CPTemplate:
    • CarPlayManagerDelegate.carPlayManager(_:leadingNavigationBarButtonsCompatibleWith:in:for:)
    • CarPlayManagerDelegate.carPlayManager(_:trailingNavigationBarButtonsCompatibleWith:in:for:)
  • Introduced new methods which return CPMapTemplate:
    • CarPlayManagerDelegate.carPlayManager(_:leadingNavigationBarButtonsCompatibleWith:in:for:)
    • CarPlayManagerDelegate.carPlayManager(_:trailingNavigationBarButtonsCompatibleWith:in:for:)

Other changes

  • Updated alternative routes preview mode for CarPlay.
  • Fixed the movement type reported to the Telemetry.
  • Fixed possible threading errors when sending Telemetry feedback events.
  • Fixed a bug when the Copilot session recording could stop right after it was started.
  • Fixed a possible crash in SimulatedLocationManager when starting the simulation at the point on the route far away from the start.
  • Fixed possible not thread-safe memory access in SimulatedLocationManager.
  • Improved route refreshing by removing unnecessary internal navigator update on refresh.
  • Fixed possible not thread-safe memory access to RouteProgress in NavigationController.
Feb 6, 2025

Packaging

Feb 4, 2025

Other changes

  • Fixed possible not thread-safe memory access in SimulatedLocationManager.
  • Improved route refreshing by removing unnecessary internal navigator update on refresh.
  • Fixed possible not thread-safe memory access to RouteProgress in NavigationController.
Jan 22, 2025

Packaging

API deprecations:

  • MapboxCopilot.startActiveGuidanceSession(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSession(), and MapboxCopilot.completeNavigationSession() are deprecated in favor of MapboxCopilot.startActiveGuidanceSessionAsync(requestIdentifier:route:searchResultUsed:), MapboxCopilot.startFreeDriveSessionAsync(), MapboxCopilot.completeNavigationSessionAsync(). Using deprecated methods may lead to losing events in the recorded history files.
  • The following methods are deprecated and should no longer be used, as the final destination annotation is no longer added to the map:
    • NavigationViewControllerDelegate.navigationViewController(_:didAdd:pointAnnotationManager:)
    • CarPlayNavigationViewControllerDelegate.carPlayNavigationViewController(_:didAdd:pointAnnotationManager:)
    • CarPlayMapViewControllerDelegate.carPlayMapViewController(_:didAdd:pointAnnotationManager:)
    • CarPlayManagerDelegate.carPlayManager(_:didAdd:to:pointAnnotationManager:)

Other changes

  • Fixed the movement type reported to the Telemetry.
  • Fixed possible threading errors when sending Telemetry feedback events.
  • Fixed a bug when the Copilot session recording could stop right after it was started.
  • Fixed a possible crash in SimulatedLocationManager when starting the simulation at the point on the route far away from the start.
Jan 21, 2025

Packaging

Other changes

  • Fixed the behavior when NavigationViewController transitions navigation to the idle state when its presented controllers disappear. Instead, it happens only when it disappears.
Dec 23, 2024

Packaging

API deprecations:

  • RerouteConfig.optionsCustomization is deprecated in favor of RerouteConfig.urlOptionsCustomization. Using the deprecated optionsCustomization may lead to losing custom query items at reroutes.

Routing

  • Supported the updated native route refresh mechanism.

⚠️ Behavioral Changes ⚠️:

  • The default intermediate waypoint appearance is now a circle without the pin icon. To customize the appearance of intermediate waypoints follow steps from NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) documentation.

Map

  • Fixed the case when intermediate waypoints can be displayed under the route line in map styles with no slot support.
  • Fixed the case when NavigationMapView.customRouteLineLayerPosition was not applied in runtime.
  • Fixed possible alternative route annotation position on the main route.
  • Improved support for tapping POI features in the Standard Style.

CarPlay

  • Added new CarPlay icons.
  • Added logic to automatically recenter puck after canceling preview mode.
  • Fixed Car Play route does not properly cancel when navigating solely from the Car Play application.
  • Added a new style for the puck and maneuver banner.

Other

  • Fixed incorrect SDK naming for the UX and UIKit frameworks. Previously, the SDK name mapbox-navigationCore-ios was mistakenly used for these frameworks.
  • Fixed street names filtering by user's language.
  • Improved history trace events.
  • Fixed refreshing annotation of alternative routes.
  • Avoided skipping of not passed instructions on teleports along the route.
  • Improve the handling of canceled tasks when requesting NavigationRoutes.
Dec 16, 2024

Packaging

API deprecations:

  • RerouteConfig.optionsCustomization is deprecated in favor of RerouteConfig.urlOptionsCustomization. Using the deprecated optionsCustomization may lead to losing custom query items at reroutes.

Routing

  • Supported the updated native route refresh mechanism.

Other changes

  • Improve the handling of canceled tasks when requesting NavigationRoutes.
Dec 9, 2024

Packaging

⚠️ Behavioral Changes ⚠️:

  • The default intermediate waypoint appearance is now a circle without the pin icon. To customize the appearance of intermediate waypoints follow steps from NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) documentation.

Map

  • Fixed the case when intermediate waypoints can be displayed under the route line in map styles with no slot support.
  • Fixed the case when NavigationMapView.customRouteLineLayerPosition was not applied in runtime.
  • Fixed possible alternative route annotation position on the main route.

CarPlay

  • Added new CarPlay icons.
  • Added logic to automatically recenter puck after canceling preview mode.
  • Fixed Car Play route does not properly cancel when navigating solely from the Car Play application.
  • Added a new style for the puck and maneuver banner.

Other

  • Fixed incorrect SDK naming for the UX and UIKit frameworks. Previously, the SDK name mapbox-navigationCore-ios was mistakenly used for these frameworks.
  • Fixed street names filtering by user's language.
  • Improved history trace events.
  • Fixed refreshing annotation of alternative routes.
  • Avoided skipping of not passed instructions on teleports along the route.
Nov 13, 2024

Packaging

⚠️ Behavioral Changes ⚠️:

  • The final destination is now displayed as a waypoint circle layer instead of a point annotation. Use AnnotationOrchestrator.makePointAnnotationManager() to create your own annotation manager to add the final destination annotation to the map. For more information see the following guide: https://docs.mapbox.com/ios/maps/guides/markers-and-annotations/annotations/#markers. To hide a particular waypoint, use NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) method to supply Feature.properties with data that allows distinguishing waypoints. Use these properties data in CircleLayer.circleOpacity expression to control waypoints visibility.
  • Updated the default visual style of waypoints. To customize waypoint representation, use NavigationMapViewDelegate.navigationMapView(_:waypointCircleLayerWithIdentifier:sourceIdentifier:) method to create your own CircleLayer for waypoints.

API deprecations:

  • NavigationMapView.pointAnnotationManager property is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.
  • NavigationMapView.navigationMapView(_, didAdd:pointAnnotationManager:) method is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.
  • RoutingConfig.init(alternativeRoutesDetectionSettings:fasterRouteDetectionSettings:rerouteSettings:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:detectsReroute:) initializer is deprecated in favor of RoutingConfig.init(alternativeRoutesDetectionConfig:fasterRouteDetectionConfig:rerouteConfig:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:).

Map

  • An alternative route is hidden on the map right after an alternative starting fork point is passed.
  • Fixed a double call of NavigationComponent.onDidReroute().
  • Fixed a possible case when .relativeDurationsOnAlternativeManuever annotations can be visible even if they were hidden previously.
  • Added the support for specifying the custom route line layer position for map styles without slots support by NavigationMapView.customRouteLineLayerPosition.

Location

  • Fixed the case when a raw, non-map-matched location was used in CarPlay.

CarPlay:

  • Update navigation buttons style.
  • Fixed inconsistent state while ending active navigation.
  • Updated navigation buttons style.
  • CarPlayMapViewController does not automatically change the state to free drive when it appears, if the previous state was different from the idle state.

Routing

  • Fixed map matching bug after leaving a tunnel.
  • Increased route stickiness in dead reckoning mode.
  • Improved odometry and road graph fusing in urban canyons.

Other changes

  • Added support for a special speed limit sign for no speed limit zones.
  • Fixed a possible force nil unwrapping in NavigationViewController.styleManager.
  • NavigationViewController transitions navigation to the idle state when it is dismissed.
  • Added the ability to configure predictive cache for search by PredictiveCacheConfig.predictiveCacheSearchConfig.
Oct 30, 2024

Packaging

Oct 28, 2024

⚠️ Behavioral Changes ⚠️:

  • The final destination is now displayed as a waypoint circle layer instead of a point annotation. Use 'AnnotationOrchestrator.makePointAnnotationManager()' to create your own annotation manager to add the final destination annotation to the map. For more information see the following guide: https://docs.mapbox.com/ios/maps/guides/markers-and-annotations/annotations/#markers. To hide a particular waypoint, use NavigationMapViewDelegate.navigationMapView(_:shapeFor:legIndex:) method to supply Feature.properties with data that allow to distinguish waypoints. Use these properties data in CircleLayer.circleOpacity expression to control waypoints visibility.
  • Updated the default visual style of waypoits. To customize waypoint representation, use NavigationMapViewDelegate.navigationMapView(_:waypointCircleLayerWithIdentifier:sourceIdentifier:) method to create your own CircleLayer for waypoints.

Packaging

API deprecations

  • NavigationMapView.pointAnnotationManager property is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.
  • NavigationMapView.navigationMapView(_, didAdd:pointAnnotationManager:) method is deprecated and should no longer be used, as the final destination annotation is no longer added to the map.

CarPlay

  • Updated navigation buttons style.
  • CarPlayMapViewController does not automatically change the state to free drive when it appears if the previous state was different than idle.

Routing

  • Fixed map matching bug after leaving a tunnel.
  • Increased route stickiness in dead reckoning mode.
  • Improved odometry and road graph fusing in urban canyons.

Other changes

  • Added support for a special speed limit sign for no speed limit zones.
  • Fixed a possible force nil unwrapping in NavigationViewController.styleManager.
Oct 24, 2024

Changes since v2.18.0:

Packaging

Routing

  • Added handling RouteResponse.refreshTTL into account when refreshing a route. Now it will no longer be possible to attmept to refresh and outdated route, and Router will inform that current route has expired using RouterDelegate.routerDidFailToRefreshExpiredRoute(:_) method. (#4672)

Other changes

  • Fixed next banner view correctly appearing when steps list view is expanded. (#4708)
  • Fixed rare route simulation issue where user's speed was calculated and NaN and the puck did not move. (#4708)
  • Fixed a possibly not-updating StepsViewController after reroutes when using a custom top bar. (#4716)
  • Improved completion detection via locating matched point near leg end if a point was not located on the current leg. (#4718)

Documentation is available online or within Xcode.

Oct 18, 2024

⚠️⚠️⚠️ Known Issues ⚠️⚠️⚠️

  • Route Line Rendering: In some cases, the route line may display with jagged or blocky corners, rather than smooth curves.

Packaging

API deprecations:

  • RoutingConfig.init(alternativeRoutesDetectionSettings:fasterRouteDetectionSettings:rerouteSettings:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:detectsReroute:) initializer is deprecated in favor of RoutingConfig.init(alternativeRoutesDetectionConfig:fasterRouteDetectionConfig:rerouteConfig:initialManeuverAvoidanceRadius:routeRefreshPeriod:routingProviderSource:prefersOnlineRoute:).

Map

  • An alternative route is hidden on the map right after an alternative starting fork point is passed.
  • Fixed a double call of NavigationComponent.onDidReroute().
  • Fixed a possible case when .relativeDurationsOnAlternativeManuever annotations can be visible even if they were hidden previously.
  • Added the support for specifying the custom route line layer position for map styles without slots support by NavigationMapView.customRouteLineLayerPosition.

Location

  • Fixed the case when a raw, non-map-matched location was used in CarPlay.

Other changes

  • NavigationViewController transitions navigation to the idle state when it is dismissed.
  • Added the ability to configure predictive cache for search by PredictiveCacheConfig.predictiveCacheSearchConfig.
Oct 3, 2024

Packaging

Map

  • Updated appearance and placement mechanism of the route line callouts.
  • Fixed extra coordinates outside lookaheadDistance for the maneuver added for the following navigation camera calculation. The camera frame can now be configured correctly by IntersectionDensity.
  • Added API NavigationMapView.excludedRouteAlertTypes for controlling the visibility of road alerts on the map.
  • Fixed a case when a far maneuver was framed by the navigation camera calculation with PitchNearManeuver.enabled. The distance to maneuver can be configured correctly by PitchNearManeuver.triggerDistanceToManeuver.
  • Fixed warnings Slot 'middle' missing for layer.
  • Fixed possible incorrect route line layer order for map styles without slot support causing top layers to appear beneath the navigation route line.

CarPlay

  • Added new method previewRoutes(to destination: Waypoint) async in CarPlayManager.
  • Added new method previewRoutes(between waypoints: [Waypoint]) async in CarPlayManager.
  • Added new method previewRoutes(for options: RouteOptions) async in CarPlayManager.

Location

  • Fixed the issue that a map-matched location was sent instead of a raw location in MapMatchingState.location. Switch to MapMatchingState.enhancedLocation if you need a map-matched location.

Routing

  • NavigationRouteOptions and NavigationMatchOptions no longer include .numericCongestionLevel attribute by default for profiles other than .automobileAvoidingTraffic.

Other changes

  • NavigatorErrors.UnexpectedNavigationStatus is now public.
  • Improved Telemetry UI-related data collection from the main thread.
  • Reported road names will now also respect user languages preferences.
  • Fixed a UI bug when the opened steps list view was not updated and sometimes had a blank space at the top.
  • Added more feedback categories for Active Guidance.
  • Added missing languages for the SAME_TIME label localization.
  • Fixed possible issue when the "NONEXISTENT_KEY_VALUE" value could have been displayed when the custom localization bundle was used and the debug option “Show non-localized strings” was enabled in Xcode.
Sep 20, 2024

Packaging

Map

  • Added API NavigationMapView.excludedRouteAlertTypes for controlling the visibility of road alerts on the map.
  • Fixed a case when a far maneuver was framed by the navigation camera calculation with PitchNearManeuver.enabled. The distance to maneuver can be configured correctly by PitchNearManeuver.triggerDistanceToManeuver.

Other changes

  • Fixed possible issue when the "NONEXISTENT_KEY_VALUE" value could have been displayed when the custom localization bundle was used and the debug option “Show non-localized strings” was enabled in Xcode.
Latest
v3.23.0
Tracking Since
Apr 26, 2024
Last checked May 1, 2026