Skip to content

Releases: mapbox/mapbox-navigation-ios

v0.39.0

21 Feb 09:12

Choose a tag to compare

Changes since v0.38.3:

  • Upgraded to Mapbox Maps SDK for iOS v5.5.1. (#2341)
  • Fixed an issue where the spoken instructions always fell back to VoiceOver when the MGLMapboxAPIBaseURL key was set in the Info.plist file. (#2329)
  • Fixed a crash when setting certain properties of a Style subclass to a dynamic color. (#2338)

Documentation is available online or within Xcode.

v0.38.3

25 Jan 19:37

Choose a tag to compare

Changes since v0.38.2:

  • Fixed a crash on launch if this SDK is installed using Carthage. (#2317)
  • Fixed a crash when the first visual instruction contained a route shield or exit number and the application’s user interface was written in SwiftUI. (#2323)
  • Fixed an issue where a black background could appear under the arrow in a ManeuverView regardless of the view’s backgroundColor property. (#2279)
  • Fixed an issue where the wrong style was applied to exit numbers in the top banner and for subsequent maneuver banners in CarPlay, resulting in poor contrast. (#2280)

Documentation is available online or within Xcode.

v0.37.2

25 Jan 19:36

Choose a tag to compare

Changes since v0.37.1:

  • Fixed a crash on launch if this SDK is installed using Carthage. (#2317)

Documentation is available online or within Xcode.

v1.0.0-alpha.1

11 Jan 23:07

Choose a tag to compare

v1.0.0-alpha.1 Pre-release
Pre-release

Changes since v0.38.2:

Packaging

  • This SDK can no longer be used in applications written in pure Objective-C. If you need to use this SDK’s public API from Objective-C code, you will need to implement a wrapper in Swift that bridges the subset of the API you need from Swift to Objective-C. (#2230)
  • Upgraded to Mapbox Maps SDK for iOS v5.6.x. (#2302)

Top and bottom banners

  • Removed BottomBannerViewController(delegate:) in favor of BottomBannerViewController() and the BottomBannerViewController.delegate property’s setter. (#2297)
  • Removed the StatusView.canChangeValue property in favor of StatusView.isEnabled. (#2297)
  • Fixed an issue where the wrong style was applied to exit numbers in the top banner and for subsequent maneuver banners in CarPlay, resulting in poor contrast. (#2161)
  • Fixed an issue where a black background could appear under the arrow in a ManeuverView regardless of the view’s backgroundColor property. (#2279)

Map

  • UserCourseView is now a type alias of the UIView class and the CourseUpdatable protocol rather than a protocol in its own right. (#2230)
  • Renamed NavigationMapView.showRoutes(_:legIndex:) to NavigationMapView.show(_:legIndex:). (#2230)
  • Renamed NavigationMapView.showWaypoints(_:legIndex:) to NavigationMapView.showWaypoints(on:legIndex:). (#2230)
  • Removed the NavigationMapView.navigationMapDelegate property in favor of NavigationMapView.navigationMapViewDelegate. (#2297)
  • Added a speed limit indicator to the upper-left corner of the map view during turn-by-turn navigation (upper-right corner in CarPlay). To hide the speed limit indicator, set the NavigationViewController.showsSpeedLimits property to false. To customize the indicator’s colors, configure SpeedLimitView’s appearance proxy inside a Style subclass. (#2291)

Spoken instructions

  • Removed MapboxVoiceController.play(_:) in favor of MapboxVoiceController.play(instruction:data:). (#2230, #2297)
  • The MapboxVoiceController.speakWithDefaultSpeechSynthesizer(_:error:) and VoiceControllerDelegate.voiceController(_:spokenInstructionsDidFailWith:) methods now accept a SpeechError instance instead of an NSError object. (#2230)
  • Added the VoiceControllerDelegate.voiceController(_:didFallBackTo:becauseOf:) method for detecting when the voice controller falls back to AVSpeechSynthesizer. (#2230)

User location

  • Removed the NavigationViewController.routeController property and LegacyRouteController(along:directions:dataSource:eventsManager:). To use LegacyRouteController instead of the default RouteController class, pass that type into MapboxNavigationService(route:directions:locationSource:eventsManagerType:simulating:routerType:), pass the MapboxNavigationService object into NavigationOptions(styles:navigationService:voiceController:topBanner:bottomBanner:), and pass the NavigationOptions object into NavigationViewController(route:navigationService:). To access LegacyRouteController, use the NavigationViewController.navigationService and NavigationService.router properties and cast the value of NavigationService.router to a LegacyRouteController. (#2297)
  • Removed the NavigationViewController.locationManager and LegacyRouteController.locationManager properties in favor of NavigationService.locationManager. (#2297)
  • Removed RouteLegProgress.upComingStep in favor of RouteLegProgress.upcomingStep. (#2297)
  • Removed the RouteProgress.nearbyCoordinates property in favor of RouteProgress.nearbyShape. (#2275, #2275)
  • Removed the LegacyRouteController.tunnelIntersectionManager property. (#2297)

Other changes

  • Since pure Swift protocols cannot have optional methods, various delegate protocols now provide default no-op implementations for all their methods and conform to the UnimplementedLogging protocol, which can inform you at runtime when a delegate method is called but has not been implemented. Messages are sent through Apple Unified Logging and can be disabled globally through Unifed Logging, or by overriding the delegate function with a no-op implementation. (#2230)
  • Removed NavigationViewController(for:styles:navigationService:voiceController:) and NavigationViewController(for:directions:styles:routeController:locationManager:voiceController:eventsManager:) in favor of NavigationViewController(route:options:). (#2297)
  • Removed the EventsManager type alias in favor of the NavigationEventsManager class. (#2297)
  • Removed the NavigationViewController.eventsManager and LegacyRouteController.eventsManager properties in favor of NavigationService.eventsManager. (#2297)
  • Removed the NavigationViewController.carPlayManager(_:didBeginNavigationWith:window:delegate:) and NavigationViewController.carPlayManagerDidEndNavigation(_:window:) methods. To mirror CarPlay navigation on the main device, present and dismiss a NavigationViewController in the CarPlayManagerDelegate.carPlayManager(_:didBeginNavigationWith:) and CarPlayManagerDelegate.carPlayManagerDidEndNavigation(_:) methods, respectively. (#2297)
  • When Dark Mode is enabled, user notifications now draw maneuver icons in white instead of black for better contrast. (#2283)
  • Added the RouteLegProgress.currentSpeedLimit property. (#2114)

Documentation is available online or within Xcode.

v0.38.2

09 Jan 09:56

Choose a tag to compare

Changes since v0.38.1:

  • Fixed a crash on launch if this SDK is installed using Carthage. (#2301)

Documentation is available online or within Xcode.

v0.37.1

09 Jan 09:36

Choose a tag to compare

Changes since v0.37.0:

  • Fixed a crash on launch if this SDK is installed using Carthage. (#2301)

Documentation is available online or within Xcode.

v0.38.1

27 Nov 01:59

Choose a tag to compare

Changes since v0.38.0:

  • Fixed an issue where user notifications displayed right turn arrows for left turn maneuvers. (#2270)

Documentation is available online or within Xcode.

v0.38.0

02 Oct 16:45

Choose a tag to compare

Changes since v0.37.0:

  • This library now requires a minimum deployment target of iOS 10.0 or above. iOS 9.x is no longer supported. (#2206)
  • Fixed an issue where the user puck appeared farther up the screen than the actual user location even while the camera pivoted around the user location at turns. (#2211)
  • Lock screen notifications are presented more reliably and more closely resemble instruction banners. (#2206)
  • Fixed an issue where manually incrementing RouteProgress.legIndex could lead to undefined behavior. (#2229)
  • DistanceFormatter now inherits directly from Formatter rather than LengthFormatter. (#2206)
  • Fixed an issue where DistanceFormatter.attributedString(for:withDefaultAttributes:) set NSAttributedString.Key.quantity to the original distance value rather than the potentially rounded value represented by the attributed string. (#2206)

Documentation is available online or within Xcode.

v0.37.0

03 Sep 18:25

Choose a tag to compare

Changes since v0.36.0:

  • Fixed an issue where a second swipe down on the top banner causes an open StepsTableViewController to animate incorrectly. (#2197)
  • Added the NavigationViewControllerDelegate.navigationViewController(_:didUpdate:location:rawLocation:) method for capturing progress updates without having to inject a class between the NavigationViewController and the NavigationService. (#2224)
  • Fixed an issue where the bottom banner can disappear when presenting in UIModalPresentationStyle.fullScreen in iOS 13. (#2182)

Documentation is available online or within Xcode.

v0.36.0

27 Jul 06:16

Choose a tag to compare

Changes since v0.35.0:

  • Fixed an issue where InstructionsBannerView remained the same color after switching to a day or night style. (#2178)
  • Fixed an issue where NavigationMapView showed routes without congestion attributes, such as MBDirectionsProfileIdentifier.walking routes, as translucent lines, even if the route had only one leg. (#2193)
  • Fixed an issue where the “iPhone Volume Low” banner would persist until replaced by another banner about simulation or rerouting. (#2183)
  • Designables no longer crash and fail to render in Interface Builder when the application target links to this SDK via CocoaPods. (#2179)
  • Fixed a crash that could occur when statically initializing a Style if the SDK was installed using CocoaPods. (#2179)
  • Fixed incorrect animation of instruction labels when presenting the step list. (#2185)

Documentation is available online or within Xcode.