Skip to content

Releases: mapbox/mapbox-maps-ios

v10.0.0

06 Oct 21:02

Choose a tag to compare

Dependencies and system requirements

  • Requires MapboxCoreMaps v10.0.0
  • Requires MapboxCommon v20.0.0
  • Requires Swift Package Manager or CocoaPods
  • Tested in Xcode 12.4 on macOS 10.15 Catalina

Changes

Style

  • [breaking] Removes default parameter values in the addImage function. (#695)
  • [breaking] Updated generic layer and source methods on Style to not rely on type inference. This makes it easier to use the methods correctly in a wider variety of contexts. (#694)
    • layer(withId:) is now layer(withId:type:).
    • updateLayer(withId:update:) is now updateLayer(withId:type:update:).
    • source(withId:) is now source(withId:type:).
  • [breaking] Updated untyped variants of layer and source methods on Style to no longer require a type parameter. This makes it easier to get a layer without knowing its type ahead of time. (#694)
    • layer(withId:type:) is now layer(withId:).
    • source(withId:type:) is now source(withId:).
  • [breaking] Removed experimental designation from the following APIs
    • Style.layer(withId:). (#694)
    • Style.source(withId:). (#694)
  • [breaking] layerProperty(for:property:) is now layerPropertyValue(for:property:) to avoid ambiguity. (#708)
  • [breaking] updateGeoJSONSource(withId:geoJSON:) is no longer generic, and works with any Turf GeoJSONObject. (#715)
  • [breaking] Setting the data property on a GeoJSON source via setSourceProperty(for:property:value:) or updateGeoJSONSource(withId:geoJSON:) is now asynchronous and never returns an error. Errors will be reported asynchronously via a MapEvents.EventKind.mapLoadingError event instead, which you can listen for using the MapboxMap.onNext and onEvery methods. (#732)

Gestures

  • [breaking] The methods of GestureManagerDelegate have been updated to provide more visibility into the gesture lifecycle. (#697)
    • gestureBegan(for:) is now gestureManager(_:didBegin:).
    • gestureManager(_:didEnd:willAnimate:) has been added.
    • gestureManager(_:didEndAnimatingFor:) has been added.
  • [breaking] Annotation managers now share a single tap gesture recognizer. This fixes a bug that where annotation managers could block each others' touch events. (#709)
    • GestureManager.singleTapGestureRecognizer has been added.
    • *AnnotationManager.tapGestureRecognizer has been removed.
  • Any touch event in the map now immediately disables camera animation. Temporarily disable user interaction on the MapView to disable this behavior as needed. (#712)
  • The double tap, quick zoom, and double touch gestures now use the gesture's location in the view to anchor camera changes. Previously, they used the camera's center coordinate. (#722)

Annotations

  • [breaking] The default image feature for point annotations has been removed. (#707)
    • PointAnnotation.Image is now a struct (was previously an enum).
    • PointAnnotation.Image.default has been removed.
    • PointAnnotation.Image.custom has been replaced with PointAnnotation.Image.init(image:name:).
  • [breaking] Annotation managers are now kept alive by the AnnotationOrchestrator (MapView.annotations) until they are explicitly destroyed by calling mapView.annotations.removeAnnotationManager(withId:) or are implicitly destroyed by creating a second annotation manager with the same ID. (#725)
  • [breaking] The AnnotationManager protocol now conforms to AnyObject. (#725)
  • AnnotationOrchestrator.annotationManagersById has been added. This dictionary contains all annotation managers that have not been removed. (#725)

Turf & GeoJSON

  • [breaking] MapboxCommon.Geometry extension methods are now internal. (#683)
  • [breaking] TileRegionLoadOptions.init now takes a Geometry instead of a MapboxCommon.Geometry. (#711)
  • [breaking] QueriedFeature.feature is no longer optional. (#737)
  • Adds TileRegionLoadOptions.geometry that uses Turf Geometry. (#711)
  • Adds FeatureExtensionValue.init(value:features:) that works with Turf. (#717)
  • Adds FeatureExtensionValue.features that uses Turf Feature. (#717)
  • APIs that accept Turf Feature now allow Feature.identifier and .properties to be nil. (#717)
  • APIs that accept Turf Feature now ignore Feature.properties instead of crashing if it cannot be converted to [String: NSObject]. (#717)
  • Adds the ExpressionArgument.geoJSONObject(_:) case, which allows you to include a Turf.GeoJSONObject instance in an expression with the Expression.Operator.distance or Expression.Operator.within operator. (#730)

Camera

  • [breaking] Removed redundant CameraAnimationsManager.options. (#712)
    • Use MapboxMap.cameraBounds and MapboxMap.setCameraBounds(with:) instead.
    • MapboxMap.setCameraBounds(for:) has been renamed to setCameraBounds(with:)
  • [breaking] Refines OfflineRegionGeometryDefinition to use Turf types. (#706)
    • geometry is now of type Geometry instead of MapboxCommon.Geometry.
    • A Geometry-based init method has been added.
  • BasicCameraAnimator no longer updates the camera a final time after being stopped or canceled prior to running to completion. (#712)
  • BasicCameraAnimator.isReversed is now settable. (#712)

Misc

  • [breaking] Core and Common APIs that accept user-defined implementations of protocols now hold strong references to the provided objects. (#732)
    • Please audit your usage of the following protocols and make any required changes to avoid memory leaks: CustomLayerHost, ElevationData, MapClient, MBMMetalViewProvider, Observer, OfflineRegionObserver, HttpServiceInterceptorInterface, HttpServiceInterface, LogWriterBackend, OfflineSwitchObserver, ReachabilityInterface, TileStoreObserver.
  • [breaking] PreferredFPS has been removed. MapView.preferredFramesPerSecond now of type Int, rather than PreferredFPS. (#735)
  • [breaking] TypeConversionError has a new case unsuccessfulConversion. (#737)
  • MapboxCommon.HTTPServiceFactory.reset() has been added to release the HTTP service implementation. (#732)
  • Adds MapView.preferredFrameRateRange for devices using iOS 15.0 and up. (#735)
  • Adds TileStore.subscribe(_:) which can be used to observe a TileStore's activity. The API design deviates from Android's add/remove observer API so that the developer-provided TileStoreObserver can be wrapped into a MapboxCommon_Private.TileStoreObserver without needing to use global state or something like Objective-C associated objects to look up which wrapper goes with with developer-provided observer when calling __removeObserver. (#737)
  • Adds TileStoreObserver protocol. (#737)
  • [bugfix] Fix rendering artifacts for a model layer when model-opacity property is used. (#732)
  • [bugfix] Improve rendering performance by avoiding unnecessary re-layout for cached tiles. (#732)
  • [bugfix] Fix telemetry opt-out through attribution dialog. (#743)

Dependencies

  • Updates MapboxCoreMaps to v10.0.0, MapboxCommon to v20.0.0. (#732)
  • Updates Turf to v2.x. (#741)
  • Updates MapboxMobileEvents to v1.0.5. (#724)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.9

22 Sep 20:33

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.9.1
  • Compatible version of MapboxCommon: v19.0.0
  • Compatible version of Xcode: 12.5
  • Compatible version of MacOS: Catalina

Changes

Breaking changes ⚠️

  • BasicCameraAnimator now keeps animators alive without the user storing the animator. (#646)
  • Experimental style APIs are now marked with @_spi(Experimental) and the previously used underscore prefixes have been removed. In order to access these methods, use @_spi(Experimental) to annotate the import statement for MapboxMaps. (#680)
  • RenderedQueryOptions.filter is now of type Expression instead of Any (#689)
  • OfflineRegionGeometryDefinition.geometry is now of type Turf.Geometry instead of MapboxCommon.Geometry (#689)
  • The HTTPResponse init methods that take MapboxCommon.Expected instead of Result are now correctly marked as refined for Swift. (#689)
  • The DownloadStatus init methods that take MapboxCommon.Expected instead of Result and NSNumber? instead of UInt64? are not correctly marked as refined for Swift. (#689)
  • GestureOptions.hapticFeedbackEnabled has been removed. (#663)
  • GestureManager.decelarationRate has been removed and GestureOptions.decelerationRate is the single source of truth. (#662)
  • GestureManager no longer conforms to NSObject and is not a UIGestureRecognizerDelegate. (#669)
  • TapGestureHandler.init was previously public by mistake and is now internal. (#677)
  • The behavior of GestureManager.options has been updated to better reflect the isEnabled state of the associated gesture recognizers. (#677)
  • The gesture recognizer properties of GestureManager are no longer Optional. (#677)
  • GestureType has been redesigned so that its cases have a 1-1 relationship with the built-in gestures. (#677)
  • GestureManager.rotationGestureRecognizer has been removed. Rotation is now handled by .pinchGestureRecognizer in addition to its preexisting handling of panning and zooming. (#696)
  • GestureManager.doubleTapToZoomOutGestureRecognizer has been replaced with .doubleTouchToZoomOutGestureRecognizer. (#696)
  • PanScrollingMode has been renamed to PanMode. (#696)
  • GestureOptions.zoomEnabled has been replaced by .doubleTapToZoomInEnabled, .doubleTouchToZoomOutEnabled, and .quickZoomEnabled. (#696)
  • GestureOptions.rotateEnabled has been removed. (#696)
  • GestureOptions.scrollEnabled has been renamed to .panEnabled. (#696)
  • GestureOptions.scrollingMode has been renamed to .panMode. (#696)
  • GestureOptions.decelerationRate has been renamed to .panDecelerationFactor. (#696)
  • GestureType.doubleTapToZoomOut has been replaced with .doubleTouchToZoomOut. (#696)
  • GestureType.rotate has been removed. (#696)
  • GestureType cases have been reordered for consistency with GestureOptions and GestureManager. (#696)

Features ✨ and improvements 🏁

  • Allow users to set the map's MapDebugOptions. (#648)
  • Implement 'promoteId' feature for geojson and vector sources. The feature allows to promote feature's property to a feature id, so that promoted id can be used with FeatureState API. (#660)
  • Tiled 3D model layer and source (#689)
  • Enable instant transitions for data driven symbol layer properties (#689)
  • Implement face culling for Metal (#689)
  • HTTPServiceInterface.getInstance() is now publicly available. (#689)
  • CameraState's fields are now vars instead of lets for testing purposes, and a public, memberwise initializer has been added. (#677)
  • PanScrollingMode now conforms to CaseIterable. (#677)
  • GestureType now conforms to CaseIterable. (#677)
  • Pan deceleration has been reimplemented to produce a more natural deceleration effect. (#692)
  • Expose new API to allow users to create a UIImage out of the last rendered MapView state. (#693)

Bug fixes 🐞

  • Fixes animations that are started within an UIKit animation context. (#684)
  • Fix transition between layers with all-constant properties (#689)
  • Fix rendering artifact for a line layer, when its line-gradient property is set at runtime. (#689)
  • Don't draw SDF images in text-field and issue warning for it (#689)
  • Fix incorrect return from StyleManager#getStyleLayerPropertyDefaultValue for 'text-field'. Now the default value is set to ["format", "" , {}] (#689)
  • GestureManager no longer sets itself as the delegate of all gestures in MapView when its options change. (#677)
  • Fixes an issue where tapping the compass could fail to set the bearing to 0 if there was already an animation running. Tapping the compass now cancels any existing animations. (#696)
  • Fixes issues with the pinch gesture when removing and re-adding one of the two required touches. (#696)
  • Fixes an issue where a pan gesture would fail if it interrupted the deceleration from a previous pan gesture. (#696)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.9/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.8

08 Sep 23:53

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: 10.0.0-rc.8
  • Compatible version of MapboxCommon: 18.0.0
  • Compatible version of Xcode: 12.5
  • Compatible version of MacOS: 11.15

Changes

Breaking changes ⚠️

  • QueriedFeature.feature is now of type Turf.Feature? instead of MapboxCommon.Feature. (#628)
  • Enables error notification in offline mode if the required resource is missing in cache (before map did not emit any notification in this case) (#628)
  • Suppresses error notifications on missing volatile tiles in offline mode (#628)
  • Adapt setBounds to gl-js behavior: constraining of coordinates and zoom level is now stricter to prevent out of bounds map area to be visible in the viewport (#628)
  • Add HTTP interceptor API - HttpServiceInterface has a new method setInterceptor that must be implemented (#628)
  • Geometry now refers to Turf.Geometry instead of MapboxCommon.Geometry. (#622)
  • Feature now refers to Turf.Feature instead of MapboxCommon.Feature. (#642)
  • Renamed ColorRepresentable to StyleColor (#650)
  • Removed the argument label from StyleColor's UIColor initializer (#650)
  • Renamed ColorRepresentable.rgbaDescription to StyleColor.rgbaString. (#650)
  • Changed StyleColor's Encodable implementation to always encode an rgba color string instead of encoding an rgba expression (#650)
  • Updated the extension on UIColor that adds ExpressionArgumentConvertible to return an rgba color string instead of an rgba expression. (#650)
  • Annotation managers now sync with their backing source and layer only once per display link. Use syncSourceAndLayerIfNeeded() to force the sync to happen earlier. (#650, #621)
  • The layerType argument to Style._layerPropertyDefaultValue(for:property:) is now of type LayerType instead of String (#650)
  • Expression decoding will now fail if the operator is missing (#650)
  • PointAnnotationManager.textVariableAnchor is now of type [TextAnchor]? instead of [String]? (#650)
  • PointAnnotationManager.textWritingMode is now of type [TextWritingMode]? instead of [String]? (#650)

Features ✨ and improvements 🏁

  • It is no longer necessary to import Turf. (#622)
  • Enable instant transitions for data driven paint layer properties (#628)
  • Offload networking tasks at the init phase (#631)
  • 3D pucks will now be rendered over other 3D content and occluded by terrain (#641)
  • Added a public, failable, component-wise initializer to StyleColor (#650)
  • Updated StyleColor's Decodable support to be able to handle rgba color strings as well as rgba expressions (#650)
  • Made generated enums conform to CaseIterable (#650)
  • Location puck can now hide the accuracy ring. The default value is to hide the accuracy ring. In order to enable the ring, set the showAccuracyRing property in Puck2DConfiguration to true. #629
  • Annotation interaction delegates are only called when at least one annotation is detected to have been tapped (638)

Bug fixes 🐞

  • Fix volatile tiles disappearing on "not modified" response (#628)
  • Fix crash in MapboxMap.clearData() (#628)
  • Trigger map redraw when feature state changes (#628)
  • Do not start background task if telemetry collection is disabled (#631)
  • Fix KVC decoding for iOS 15 (#631)
  • The GeoJSON source backing an AnnotationMnager is now removed correctly when an AnnotationManager is deallocated (#633)
  • Updated annotations to use rgbaString and init(rgbaString:) when serializing and deserializing StyleColors (#650)
  • Annotation managers now properly restore the default values of any annotation or common style properties that are reset to nil, with the exception of text-field and line-gradient for which there are currently issues to resolve between mapbox-maps-ios and mapbox-core-maps-ios. (#650)
  • Fixed Expression decoding when second array element could be an operator (#650)
  • Fixed an issue where layer persistence was not maintained after calling Style._moveLayer. (#643)
  • Fix issue where annotations were not being returned to annotation interaction delegates (638)

Breaking changes ⚠️

  • TileStore.tileRegionGeometry(forId: String, completion: @escaping (Result<MapboxCommon.Geometry, Error>) -> Void) has been updated to TileStore.tileRegionGeometry(forId: String, completion: @escaping (Result<Geometry, Error>) -> Void). (#661)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.8/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.7

25 Aug 22:40

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.7.2
  • Compatible version of MapboxCommon: v17.1.0
  • Compatible version of Xcode: 12.4+
  • Compatible version of MacOS: Big Sur

Changes

Features ✨ and improvements 🏁

  • Add support for FeatureState in GeoJSON sources. (#611)
    • setFeatureState(sourceId:sourceLayerId:featureId:state:) is used to associate a stateMap for a particular feature
    • getFeatureState(sourceId:sourceLayerId:featureId:callback:) is used to retrieve a previously stored stateMap for a feature
    • removeFeatureState(sourceId:sourceLayerId:featureId:stateKey:) is used to remove a previously stored stateMap for a feature
  • Added GeoJSONSource.generateId (#593)
  • Enable the combined usage of line-dasharray with line-gradient (#588)
  • Fixed rendering issue for round line-join in line gradients (#594)

Breaking changes ⚠️

  • Removed GeoJSONManager. Please use Turf directly instead to serialize and deserialize GeoJSON. (#603)
  • Add specific geometry types to annotations. (#612)
  • Replace syncAnnotations with property setter. (#614)

Bug fixes 🐞

  • Update all Annotation files to use get/set instead of didSet. This fixes an issue where properties were not being set at init. (#590)
  • GeoJSONSource.clusterProperties is now correctly modeled per the style spec. (#597)
  • Fixes a crash caused by MapboxMap.clearData(). (#609)
  • Added missing attribution and links to info alert controller. (#591)
  • Fixed issue that caused incorrect animation of negative padding values (#602)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.7/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.6

11 Aug 16:51

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.6
  • Compatible version of MapboxCommon: v16.2.0
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

Features ✨ and improvements 🏁

  • Added support for building with Xcode 13b3. (#564)
  • Added attribution to snapshots generated by Snapshotter. (567)
  • Added a convenience initializer for DownloadStatus (#454)

Bug fixes 🐞

  • Fixed an issue where panning was not enabled while zooming. (#474)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.6/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.5

28 Jul 20:21

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.5
  • Compatible version of MapboxCommon: 16.0.0
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

Bug fixes 🐞

  • Fixed an issue where MapView positioning wasn't correct when used in containers such as UIStackView (#533)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.5/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.4

14 Jul 19:47

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.4
  • Compatible version of MapboxCommon: v15.0.0
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

Features ✨ and improvements 🏁

  • Support text-writing-mode property for line symbol-placement text labels. (#522)
    Note: This change will bring following changes for CJK text block:
    1. For vertical CJK text, all the characters including Latin and Numbers will be vertically placed now. Previously, Latin and Numbers are horizontally placed.
    2. For horizontal CJK text, it may have a slight horizontal shift due to the anchor shift.
  • Expanded localizeLabels(into: Locale) to accept a [String]. This array will contain a list of layer ids that you will want to localize. (#512)

Breaking changes ⚠️

  • TileRegionError has a new case tileCountExceeded(String). (#522)
  • FlyToCameraAnimator.state will now be .inactive after it completes or is stopped. This change makes its behavior consistent with the behavior of BasicCameraAnimator. (#519)
  • Completion blocks added to BasicCameraAnimator will no longer be invoked as a side-effect of deinitialization. (#519)
  • Removed the SupportedLanguage enum. You may now use Locale(identifier: String) as intended. (#512)
  • Removed the MapView.locale property. Now, in order to localize values, you must call mapView.mapboxMap.style.localizeLabels(into: Locale). (#512)

Bug fixes 🐞

  • Clean up network listener after http file source gets out of scope. (#522)
  • Fix line-center anchor calculation when the anchor is very near to the line geometry point. (#522)
  • Fix threading issues in HTTP file source. (#522)
  • Fixed an issue that could cause flickering during ease to and basic animations (#519)
  • Fixed an issue that could result in ease to and basic animations never reaching their final values (#519)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.4/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.3

30 Jun 20:06

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.3
  • Compatible version of MapboxCommon: v14.2.0
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

The Mapbox Maps SDK for iOS has moved to release candidate status and is now ready for production use.

Features ✨ and improvements 🏁

  • Introduced static method MapboxMap.clearData(for:completion:) and instance methods MapboxMap.clearData(completion:) and Snapshotter.clearData(completion:). These new methods allow clearing temporary map data. (#496)
  • MapLoadingError events now include source and tile information where appropriate. These new fields allow developers to understand what source or tile has failed to load and the reason for the failure. (#496)

Bug fixes 🐞

  • Fixed a runtime crash that occurred only when the SDK was included as an XCFramework (direct download). (#497)
  • Fixed an issue where animators created by fly to and ease to were not released until the next fly to or ease to began. (#505)
  • Fixed an issue where a complete animator would trigger redrawing unnecessarily. (#505)
  • Fix raster/v1 terrain tiles fetch failures caused by appending pixel ratio to the URLs when tile size is equal to 512 (#496)
  • Improve persistent layer pinning by keeping information about initial LayerPosition (#496)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.3/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.2

23 Jun 23:55

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.2
  • Compatible version of MapboxCommon: v14.0.1
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

The Mapbox Maps SDK for iOS has moved to release candidate status and is now ready for production use.

Features ✨ and improvements 🏁

  • Introduced experimental Style._addPersistentLayer(with:layerPosition:), Style._isPersistentLayer(id:), Style._addPersistentCustomLayer(withId:layerHost:layerPosition:) APIs, so that the tagged layer and its associated resources remain when a style is reloaded. This improves performance of annotations during a style change. Experimental APIs should be considered liable to change in any SEMVER version. (#471, #473)
  • Annotations now will persist across style changes by default. (#475)
  • Adds localization support for v10 Maps SDK. This can be used by setting the mapView.locale. Use the SupportedLanguages enum, which lists currently supported Locale. (#480)
  • Fixed Tileset descriptor bug: Completion handler is called even if the OfflineManager instance goes out of scope.
  • Fixed text rendering when both 'text-rotate' and 'text-offset' are set.

Breaking changes ⚠️

  • MapboxMaps now pins exactly to MapboxCommon. (#485, #481)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.2/MapboxMaps.zip?access_token=<access-token>

Mapbox Maps: v10.0.0-rc.1

10 Jun 20:06

Choose a tag to compare

Dependency requirements:

  • Compatible version of MapboxCoreMaps: v10.0.0-rc.1
  • Compatible version of MapboxCommon: v14.0.1
  • Compatible version of Xcode: 12.4
  • Compatible version of MacOS: Big Sur

Changes

The Mapbox Maps SDK for iOS has moved to release candidate status and is now ready for production use.

Breaking changes ⚠️

  • Converted MapSnapshotOptions to a struct. (#430)
  • Removed CacheManager. In the following releases, an API to control temporary map data may be provided. (#440)
  • Changed ResourceOptions.cachePathURL to dataPathURL and removed cacheSize. (#440)
  • Annotations don't have a type property since they can be directly compared to a type. (451)
  • Internalize extensions of Core and Common types. (#449)

Features ✨ and improvements 🏁

  • Allows a developer to choose whether the puck is oriented based on heading or course via a new puckBearingSource option in mapView.location.options. By default, the puck will be oriented using heading. (#428)
  • All stock gesture recognizers are now public on the GestureManager. (450)
  • The tap gesture recognizer controlled by any given annotation manager is now public. (451)

Bug fixes 🐞

  • Fixed a bug where animations were not always honored. (#443)
  • Fixed an issue that vertical text was not positioned correctly if the text-offset property was used. (#440)
  • Emit .mapLoadingError when an empty token is provided for accessing Mapbox data sources. Before the fix, the application may crash if an empty token was provided and map tries to load data from Mapbox data source. (#440)
  • Do not emit .mapLoadingError when an empty URL is set to GeoJSON source. (#440)

Dependencies

  • Updated MapboxCoreMaps, MapboxCommon and Turf dependencies. (#440)

Direct download

Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ):

https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.0.0-rc.1/MapboxMaps.zip?access_token=<access-token>