Releases: mapbox/mapbox-maps-ios
v10.2.0
Dependency requirements:
- Compatible version of MapboxCoreMaps:
v10.2.0
- Compatible version of MapboxCommon:
v21.0.1
- Compatible version of Xcode:
12.5
Changes
View Annotations
- Introduces UIView-based annotation API. (#776, #846, #861)
- To try it out, use the methods on MapView.viewAnnotations.
Annotations
- Optimizes tap handling performance by doing a single call to
queryRenderedFeatures
inAnnotationOrchestrator
, rather than in each annotation manager. (#840)
Gestures
- Panning behavior on pitched maps has been improved. Panning no longer begins while the touch location is above the horizon, deceleration is disabled if the pan ends above the horizon, and the implementation of pan deceleration has been updated to avoid the sensitive portion of the map near the horizon. These changes help to reduce the incidence of the map moving unexpectedly far when flinging toward the horizon. (#888)
- Additionally, the drag sensitivity around and above the horizon has been reduced. (#891)
- There is a new experimental configuration option that addresses #775. However, it is off by default because it introduces the new issue #864. We plan to continue investigating solutions that will solve both issues.
Style
Style.localizeLabels(into:forLayerIds:)
has been updated to only localize the primary localization and not the fall-through localizations. (#856)StyleColor
can now correctly deserialize rgba CSS colors that contain components with exponents. (#873)- The persistent layer APIs are no longer marked as experimental. In previous releases, import statements needed to be annotated with
@_spi(Experimental)
to expose these APIs. As of this release, that is no longer necessary. (#849)
Telemetry
- The attribution dialog now reflects telemetry opt-in-out status correctly at first appearance. (#865).
Camera
- Fixed an issue where camera animations triggered with
startAnimation(afterDelay:)
could appear jerky after a pan gesture. (#789)
Location
- Refactors location-related components for increased testability and reliability. (#765)
Location.location
is now public to allow access to the underlyingCLLocation
value.Location.accuracyAuthorization
has been added.Location.init(location:heading:accuracyAuthorization:)
has been added. Prefer this initializer over the olderinit(with:heading:)
when creating instances ofLocation
Style
'sinternal func addPersistentLayer(_ layer: Layer, layerPosition: LayerPosition? = nil) throws
is now@_spi(Experimental) public
LocationManger.consumers
now returns a copy of the underlying hash table. Previously, the actual instance was returned which allowed consuming code to modify theLocationManager
's internal state.LocationPermissionsDelegate
now relays errors from the underlying location providerLocationManager.updateHeadingForCurrentDeviceOrientation()
no longer has any effect (what it did previously is now handled automatically)- Heading updates that arrive prior to a location update are now stored and delivered to
LocationConsumer
s as soon as a location is available. LocationConsumer
s now receive a newLocation
when the accuracy authorization changes.LocationManager
's implementation of theLocationProviderDelegate
protocol now does nothing. The internalLocationProducer
is now theLocationProviderDelegate
- When a custom location provider is set on
LocationManager
, an instance ofEmptyLocationProviderDelegate
is set as the delegate of the old location provider as a defensive measure to avoid receiving any further delegate messages from the old provider. It would have been preferable to set the location provider's delegate to nil, but the protocol does not allow it and cannot be changed in a non-breaking way. LocationManager
(viaLocationProducer
) now starts & stops updating on the location provider based on whether there are any consumers. It handles the case where the final consumer is deinited (since it only holds weak references to them) by stopping the updating as soon as the next location provider delegate method is invoked.
Dependencies
- Updates MapboxCoreMaps to v10.2.0. (#952)
- Features ✨ and improvements 🏁
- Add heatmap layer support to globe view
- Improve performance for querying large number of features
- Cache layer layout key inside layer, so that it is not re-evaluated at every parse of the every tile
- Load Gltf external files
- Add cancelable QRF API to the Map interface
- Core renderer prints its version on initialization
- Introduce experimental Map.setMemoryBudget method for setting memory budget for a Map and runtime "resource-budget" property for data sources
- Reduce memory consumption of a model layer by avoiding duplicate texture uploads
- Add circle layer support to globe
- Introduce ViewAnnotation API and corresponding support in gl-native
- Bug fixes 🐞
- Reduces drag sensitivity around and above horizon
- Release all unused resources when
Map.reduceMemoryUse
is invoked - Fix crash for the case when an empty fill extrusion bucket is tried to be rendered
- Fix transparency with value<0.5 in models
- Fix regression where setting the same geojson source URL did not refresh the data
- Fix symbol layers with variable anchor placement not being placed correctly on globe view
- Fix crash in symbol reprojection code caused by division by zero
- Fix issue with bounds constraining behavior when terrain is enabled
- Features ✨ and improvements 🏁
- Updates MapboxCommon to v21.0.1. (#952)
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.2.0/MapboxMaps.zip?access_token=<access-token>
v10.1.2
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.1.1
- Compatible version of MapboxCommon: v20.1.2
- Compatible version of Xcode: 12.5+
Changes
Updates MapboxCommon to v20.1.2 to fix a billing issue when upgrading from v6 to v10. This patch replaces the previous patch that was released (and subsequently recalled) as v10.1.1. #943
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.1.2/MapboxMaps.zip?access_token=<access-token>
v10.0.3
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0
- Compatible version of MapboxCommon: v20.0.3
- Compatible version of Xcode: v12.5+
Changes
Updates MapboxCommon to v20.0.3 to fix a billing issue when upgrading from v6 to v10. This patch replaces the previous patch that was released (and subsequently recalled) as v10.0.2. #942
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.3/MapboxMaps.zip?access_token=<access-token>
v10.2.0-rc.1
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.2.0-rc.1
- Compatible version of MapboxCommon: v21.0.0-rc.2
- Compatible version of Xcode: Tested with Xcode 12.5 and 13.1
- Compatible version of macOS: Tested with version 11.6.1
Changes
View Annotations
Gestures
- Panning behavior on pitched maps has been improved. Panning no longer begins while the touch location is above the horizon, deceleration is disabled if the pan ends above the horizon, and the implementation of pan deceleration has been updated to avoid the sensitive portion of the map near the horizon. These changes help to reduce the incidence of the map moving unexpectedly far when flinging toward the horizon. (#888)
- Additionally, the drag sensitivity around and above the horizon has been reduced. (#891)
- v10.2.0-beta.1 introduced an updated pinch gesture implementation to address #775, but this change introduced a new issue #864. Additionally, the overall feel of the gesture was not as smooth. The default behavior has been reverted to match v10.1, but the v10.2.0-beta.1 behavior is still available as an experimental configuration option. (#890)
Location Puck
- v10.2.0-beta.1 introduced a regression that prevented the location puck from appearing when a location permission request was required. (#862)
Persistent Layer APIs
- The persistent layer APIs are no longer marked as experimental. In previous releases, import statements needed to be annotated with
@_spi(Experimental)
to expose these APIs. As of this release, that is no longer necessary. (#849)
Style
Style.localizeLabels(into:forLayerIds:)
has been updated to only localize the primary localization and not the fall-through localizations. (#856)StyleColor
can now correctly deserialize rgba CSS colors that contain components with exponents. (#873)
Telemetry
- The attribution dialog now reflects telemetry opt-in-out status correctly at first appearance. (#865)
Direct Download
- This release fixes a bug that prevented experimental APIs from being available to developers who integrated the SDK via the direct download option. (#854)
- It also prevents a swiftlint config file from being included as a bundled resource in the XCFramework. (#859)
Dependencies
- MapboxCoreMaps has been updated to v10.2.0-rc.1 and MapboxCommon has been updated to v21.0.0-rc.2. (#891)
- Reverts "Improve performance by avoiding re-layout of invisible fading tiles" because it caused regression on globe view projection zooming in/out.
- Reduces drag sensitivity around and above horizon.
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.2.0-rc.1/MapboxMaps.zip?access_token=<access-token>
v10.2.0-beta.1
Dependency requirements:
- Compatible version of MapboxCoreMaps: 10.2.0-beta.1
- Compatible version of MapboxCommon: 21.0.0-rc.1
- Compatible version of Xcode: Tested with Xcode 12.5 and 13.1
- Compatible version of macOS: Tested with macOS 11.6
Changes
- Introduces UIView-based annotation API. (#776)
- This feature is still in development, and the API is expected to change in the next prerelease.
- To try it out, use the methods on
[MapView.viewAnnotation](https://docs.mapbox.com/ios/maps/api/10.2.0-beta.1/Classes/ViewAnnotationManager.html)
.
- Fixed an issue where camera animations triggered with
startAnimation(afterDelay:)
could appear jerky after a pan gesture. (#789) - Refactors location-related components for increased testability and reliability. (#765)
Location.location
is now public to allow access to the underlyingCLLocation
value.Location.accuracyAuthorization
has been added.Location.init(location:heading:accuracyAuthorization:)
has been added. Prefer this initializer over the olderinit(with:heading:)
when creating instances ofLocation
Style
'sinternal func addPersistentLayer(_ layer: Layer, layerPosition: LayerPosition? = nil) throws
is now@_spi(Experimental) public
LocationManger.consumers
now returns a copy of the underlying hash table. Previously, the actual instance was returned which allowed consuming code to modify theLocationManager
's internal state.LocationPermissionsDelegate
now relays errors from the underlying location providerLocationManager.updateHeadingForCurrentDeviceOrientation()
no longer has any effect (what it did previously is now handled automatically)- Heading updates that arrive prior to a location update are now stored and delivered to
LocationConsumer
s as soon as a location is available. LocationConsumer
s now receive a newLocation
when the accuracy authorization changes.LocationManager
's implementation of theLocationProviderDelegate
protocol now does nothing. The internalLocationProducer
is now theLocationProviderDelegate
- When a custom location provider is set on
LocationManager
, an instance ofEmptyLocationProviderDelegate
is set as the delegate of the old location provider as a defensive measure to avoid receiving any further delegate messages from the old provider. It would have been preferable to set the location provider's delegate to nil, but the protocol does not allow it and cannot be changed in a non-breaking way. LocationManager
(viaLocationProducer
) now starts & stops updating on the location provider based on whether there are any consumers. It handles the case where the final consumer is deinited (since it only holds weak references to them) by stopping the updating as soon as the next location provider delegate method is invoked.
- Fixes an issue where
cameraChanged
events during pan and pinch gestures would repeatedly emit the initial camera state, interleaved with the updated state. (#837) - Optimizes tap handling performance by doing a single call to
queryRenderedFeatures
inAnnotationOrchestrator
, rather than in each annotation manager. (#840)
Dependencies
- Updates MapboxCoreMaps to v10.2.0-beta.1. (#836)
- Features ✨ and improvements 🏁
- Add heatmap layer support to globe view
- Add circle layer support to globe
- Improve performance for querying large number of features
- Cache layer layout key inside layer, so that it is not re-evaluated at every parse of the every tile
- Model layer now supports loading of external gltf files
- Add cancelable Query Rendered Features API to the Map interface
- Core renderer prints its version on initialization
- Introduce experimental Map.setMemoryBudget method for setting memory budget for a Map and runtime "resource-budget" property for data sources
- Improve performance by avoiding re-layout of invisible fading tiles
- Reduce memory consumption of a model layer by avoiding duplicate texture uploads
- Introduce ViewAnnotation API and corresponding support in gl-native
- Bug fixes 🐞
- Release all unused resources when
Map.reduceMemoryUse
is invoked - Fix crash for the case when an empty fill extrusion bucket is tried to be rendered
- Fix transparency issues with value < 0.5 for models rendered by the model layer
- Fix regression where setting the same geojson source URL did not refresh the data
- Fix symbol layers with variable anchor placement not being placed correctly on globe view
- Fix crash in symbol reprojection code caused by division by zero
- Fix issue with bounds constraining behavior when terrain is enabled
- Release all unused resources when
- Features ✨ and improvements 🏁
- Updates MapboxCommon to v21.0.0-rc.1. (#836)
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.2.0-beta.1/MapboxMaps.zip?access_token=<access-token>
v10.1.0
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.1.0
- Compatible version of MapboxCommon: v20.1.0
- Compatible version of Xcode: Tested with Xcode 12.5 and 13.1
- Compatible version of macOS: Tested with macOS 11.6.1
Changes
Features and Improvements
PointAnnotation.Image
'simage: UIImage
andname: String
fields are now public. (#753)- The gesture- and animation-in-progress flags are now set on
MapboxMap
during gestures and animations. (#754)- This improves performance and resolves raster tile rendering issues.
GestureOptions.pinchRotateEnabled
has been added to allow disabling the rotation aspect of the pinch gesture. (#779)
Bug fixes
- The experimental
MapView
snapshot API has been updated to work on iOS 15. (#760) - Anchor is now treated as a constant for
ease(to:)
animations. (#772)- This results in an less surprising API and fixes issues with the double-{tap,touch}-to-zoom gestures.
- If you need to animate the anchor, you can still use the
makeAnimator*
APIs
- Increases the rate of pan gesture deceleration on pitched maps. (#773)
- Pan gesture deceleration is now completely disabled if pitch exceeds 60 degrees.
- This approach is a first attempt at mitigating issues with panning around or near the horizon on pitched maps that resulted in much higher than desired map displacement.
- The following fixes accompanied the updates to
MapboxCoreMaps
andMapboxCommon
(#807):- Fix rendering artifact when some of the model layer models may have wrong placement when globe view projection is used
- Fix rare heatmap flickering when zooming the map
- Fix an issue where an
Observable
event could be dispatched on a thread different from the subscription thread - Fix an issue where
promoteId
parameter forVectorSource
was overwritten when sourceTileJSON
is loaded - Relax numeric property getter in
queryFeatureExtensions
API, so thatcluster_id
property can be double or signed integer - Move
MBMTask
,MBMClient
andMBMMetalViewProvider
interfaces to internalMapboxCoreMaps
module, so that we avoid class name clashes withSwift.Task
UIImage
instances that have padded rows are now handled correctly during conversion toMBMImage
. This fixes the "mismatched image size" errors that were reported when trying to add dynamically-rendered images to the style (or to an annotation).
Dependencies
- Updates to
MapboxCoreMaps
v10.1.0 andMapboxCommon
v20.1.0. (#807)
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.1.0/MapboxMaps.zip?access_token=<access-token>
v10.1.0-rc.1
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.1.0-rc
- Compatible version of MapboxCommon: v20.1.0-rc.2
- Compatible version of Xcode: Tested with 12.5
- Compatible version of macOS: Tested with 11.6 (macOS Big Sur)
Changes
Bug fixes
- Fixed an issue with
UIImage
conversion that led to a "mismatched image size" error. (#790)
Dependencies
Update to MapboxCoreMaps
v10.1.0-rc and MapboxCommon
v20.1.0-rc.2. (#790)
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.1.0-rc.1/MapboxMaps.zip?access_token=<access-token>
v10.1.0-beta.1
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.1.0-beta
- Compatible version of MapboxCommon: v20.1.0-rc.1
- Requires Swift Package Manager or CocoaPods
- Tested in Xcode 12.5 on macOS 11.6 Big Sur
Changes
Features and Improvements
- Make
PointAnnotation.Image
's fields public. (#753) - Set
MapboxMap
flags during gestures and animations. (#754) - Add
GestureOptions.pinchRotateEnabled
to configure whether the pinch gesture rotates the map. (#779)
Bug fixes
- Fix experimental snapshot API for iOS 15. (#760)
- Fixed an issue that caused
queryFeatureExtension
to fail. (#769) - Fixed a name collision between Swift symbols and
MapboxCoreMaps.Task
. (#769) - Treat anchor as constant for
ease(to:)
animations. (#772) - Decelerate more quickly (or not at all) on pitched maps. (#773)
Dependencies
- Updated
MapboxCoreMaps
to v10.1.0-beta andMapboxCommon
to 20.1.0-rc.1. (#769)
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.1.0-beta.1/MapboxMaps.zip?access_token=<access-token>
v10.0.1
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
- Passing an unsupported locale into
Style.localizeLabels(into:forLayerIds:)
throws an error instead of crashing. (#752) - Fixed a bug affecting the persistence of user settings when upgrading to v10. (#758)
- Allow compass visibility to accurately reflect set value. (#757)
- Update MapboxMobileEvents to v1.0.6, fixing a null pointer crash. (#762)
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.1/MapboxMaps.zip?access_token=<access-token>
v10.0.0
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 nowlayer(withId:type:)
.updateLayer(withId:update:)
is nowupdateLayer(withId:type:update:)
.source(withId:)
is nowsource(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 nowlayer(withId:)
.source(withId:type:)
is nowsource(withId:)
.
- [breaking] Removed experimental designation from the following APIs
- [breaking]
layerProperty(for:property:)
is nowlayerPropertyValue(for:property:)
to avoid ambiguity. (#708) - [breaking]
updateGeoJSONSource(withId:geoJSON:)
is no longer generic, and works with any TurfGeoJSONObject
. (#715) - [breaking] Setting the
data
property on a GeoJSON source viasetSourceProperty(for:property:value:)
orupdateGeoJSONSource(withId:geoJSON:)
is now asynchronous and never returns an error. Errors will be reported asynchronously via aMapEvents.EventKind.mapLoadingError
event instead, which you can listen for using theMapboxMap.onNext
andonEvery
methods. (#732)
Gestures
- [breaking] The methods of
GestureManagerDelegate
have been updated to provide more visibility into the gesture lifecycle. (#697)gestureBegan(for:)
is nowgestureManager(_: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 astruct
(was previously anenum
).PointAnnotation.Image.default
has been removed.PointAnnotation.Image.custom
has been replaced withPointAnnotation.Image.init(image:name:)
.
- [breaking] Annotation managers are now kept alive by the
AnnotationOrchestrator
(MapView.annotations
) until they are explicitly destroyed by callingmapView.annotations.removeAnnotationManager(withId:)
or are implicitly destroyed by creating a second annotation manager with the same ID. (#725) - [breaking] The
AnnotationManager
protocol now conforms toAnyObject
. (#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 aGeometry
instead of aMapboxCommon.Geometry
. (#711) - [breaking]
QueriedFeature.feature
is no longer optional. (#737) - Adds
TileRegionLoadOptions.geometry
that uses TurfGeometry
. (#711) - Adds
FeatureExtensionValue.init(value:features:)
that works with Turf. (#717) - Adds
FeatureExtensionValue.features
that uses TurfFeature
. (#717) - APIs that accept Turf
Feature
now allowFeature.identifier
and.properties
to benil
. (#717) - APIs that accept Turf
Feature
now ignoreFeature.properties
instead of crashing if it cannot be converted to[String: NSObject]
. (#717) - Adds the
ExpressionArgument.geoJSONObject(_:)
case, which allows you to include aTurf.GeoJSONObject
instance in an expression with theExpression.Operator.distance
orExpression.Operator.within
operator. (#730)
Camera
- [breaking] Removed redundant
CameraAnimationsManager.options
. (#712)- Use
MapboxMap.cameraBounds
andMapboxMap.setCameraBounds(with:)
instead. MapboxMap.setCameraBounds(for:)
has been renamed tosetCameraBounds(with:)
- Use
- [breaking] Refines
OfflineRegionGeometryDefinition
to use Turf types. (#706)geometry
is now of typeGeometry
instead ofMapboxCommon.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
.
- Please audit your usage of the following protocols and make any required changes to avoid memory leaks:
- [breaking]
PreferredFPS
has been removed.MapView.preferredFramesPerSecond
now of typeInt
, rather thanPreferredFPS
. (#735) - [breaking]
TypeConversionError
has a new caseunsuccessfulConversion
. (#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 aTileStore
's activity. The API design deviates from Android's add/remove observer API so that the developer-providedTileStoreObserver
can be wrapped into aMapboxCommon_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>