Releases: mapbox/mapbox-maps-ios
Mapbox Maps: v10.0.0-rc.6
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
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
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:- For vertical CJK text, all the characters including Latin and Numbers will be vertically placed now. Previously, Latin and Numbers are horizontally placed.
- 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 casetileCountExceeded(String)
. (#522)- FlyToCameraAnimator.state will now be
.inactive
after it completes or is stopped. This change makes its behavior consistent with the behavior ofBasicCameraAnimator
. (#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 useLocale(identifier: String)
as intended. (#512) - Removed the
MapView.locale
property. Now, in order to localize values, you must callmapView.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
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 methodsMapboxMap.clearData(completion:)
andSnapshotter.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
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 theSupportedLanguages
enum, which lists currently supportedLocale
. (#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 ⚠️
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
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
todataPathURL
and removedcacheSize
. (#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
orcourse
via a newpuckBearingSource
option inmapView.location.options
. By default, the puck will be oriented usingheading
. (#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>
Mapbox Maps: v10.0.0-beta.21
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-beta.23
- Compatible version of MapboxCommon: v13.0.0
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
10.0.0-beta.21 - June 3, 2021
Breaking changes ⚠️
- Updated MapboxCoreMaps and MapboxCommon dependencies. (#388)
- Removed the
MBX
prefix fromMBXGeometry
,MBXGeometryType
andMBXFeature
. Existing uses of the similar Turf types need to be fully namespaced, i.e.Turf.Feature
- Introduced separate minZoom/maxZoom fields into CustomGeometrySourceOptions API instead of the formerly used
zoomRange
- Improved zooming performance.
- Fixed terrain transparency issue when a sky layer is not used.
- Removed the
MapboxMap.__map
is now private. (#374)- Added
CameraManagerProtocol.setCameraBounds
,MapboxMap.prefetchZoomDelta
,MapboxMap.options
,MapboxMap.reduceMemoryUse()
,MapboxMap.resourceOptions
andMapboxMap.elevation(at:)
. (#374) - Removed
OfflineError.invalidResult
andOfflineError.typeMismatch
. (#374) - Updated
Projection
APIs to be more Swift-like. (#390) - Added
ResourceOptionsManager
and removedCredentialsManager
which it replaces.ResourceOptions
is now a struct. (#396) - Updated the ambient cache path. (#396)
- Removed
CameraAnimationsManager.setCamera()
and renamedCameraManagerProtocol._setCamera
toCameraManagerProtocol.setCamera()
. UseMapView.mapboxMap.setCamera()
to set the camera. (#426) - Removed
MapCameraOptions
andRenderOptions
; this behavior has moved to bothMapboxMap
andMapView
. (#427) - The Annotations library has been rebuilt to expose many more customization options for each annotation. (#398)
- High level animations return
Cancelable
instead ofCameraAnimator
. (#400)
Bug fixes 🐞
- Fixed a bug with
TileStore.tileRegionGeometry
returning invalid value. (#390) - Fixed a bug where the underlying renderer was not being destroyed. (#395)
- Fixed a bug where the snapshotter completion handler was being called twice on cancellation.
(#382) - Fixed a bug where
GestureManager.delegate
was inaccessible. (#401)
Features ✨ and improvements 🏁
- Added
Snapshotter.coordinateBounds(for:)
andSnapshotter.camera(for:padding:bearing:pitch:)
. (#386)
Development 🛠
- Dependency management for development of the SDK has moved to Swift Package Manager and the existing Cartfile has been removed.
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-beta.21/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-beta.20
Dependency requirements:
- Compatible version of MapboxCoreMaps: v10.0.0-beta.22
- Compatible version of MapboxCommon: v12.0.0
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
10.0.0-beta.20 - May 20, 2021
Breaking changes ⚠️
BaseMapView.on()
has now been replaced bymapView.mapboxMap.onNext(...) -> Cancelable
andmapView.mapboxMap.onEvery(...) -> Cancelable
. (#339)StyleURI
,PreferredFPS
, andAnimationOwner
are now structs. (#285)- The
layout
andpaint
substructs for each layer are now merged into the root layer struct. (#362) GestureOptions
are owned byGestureManager
directly. (#343)LocationOptions
are owned byLocationManager
directly. (#344)MapCameraOptions
are owned bymapView.camera
directly. (#345)RenderOptions
are owned byBaseMapView
directly. (#350)AnnotationOptions
are owned byAnnotationManager
directly. (#351)MapView
has been coalesced intoBaseMapView
and the resulting object is calledMapView
. (#353)Style.uri
is now an optional property. (#347)Style
is no longer a dependency onLocationSupportableMapView
. (#352)Style
now has a more flat structure.Layout
andPaint
structs are now obsolete andLayer
properties are at the root layer. (#362)- Changed
LayerPosition
to an enum. (#221) - Removed
style
from MapView; updated tests and examples to usemapboxMap.style
. (#361) - The
visibleFeatures
APIs have been renamed toqueryRenderedFeatures
. (#361) LoggingConfiguration
is no longer public. (#361)- The following Swift wrappers have been added for existing types; these primarily change callbacks from using an internal
MBXExpected
type to using Swift'sResult
type. (#361)CacheManager
HttpResponse
OfflineSwitch
(which replaces NetworkConnectivity)OfflineRegionManager
(though this API is deprecated)
- Adds
loadStyleURI
andloadStyleJSON
toMapboxMap
. (#354)
Bug fixes 🐞
- Fixed an issue where the map's scale bar and compass view could trigger
layoutSubviews()
for the map view. (#338)
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-beta.20/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-beta.19.1
Dependency requirements:
- Compatible version of MapboxCoreMaps: 10.0.0-beta.21
- Compatible version of MapboxCommon: 11.0.2
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
Breaking changes ⚠️
OrnamentOptions.logo._isVisible
andOrnamentOptions.attributionButton._isVisible
have been replaced withOrnamentOptions.logo.visibility
andOrnamentOptions.attributionButton.visibility
. (#326)
Bug fixes 🐞
- Fixed an issue where location pucks would not be rendered. (#331)
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-beta.19.1/MapboxMaps.zip?access_token=<access-token>
Mapbox Maps: v10.0.0-beta.19
Dependency requirements:
- Compatible version of MapboxCoreMaps: 10.0.0-beta.21
- Compatible version of MapboxCommon: 11.0.2
- Compatible version of Xcode: 12.4
- Compatible version of MacOS: Big Sur
Changes
Breaking changes ⚠️
camera(for:)
methods have moved fromBaseMapView
toMapboxMap
(#286)- The API has also been aligned with Android by:
- Removing default values for parameters
- Making
bearing
andpitch
parameters optional - Adding the
camera(for:camera:rect:)
variant
- The API has also been aligned with Android by:
OrnamentOptions
should now be accessed viaMapView.ornaments.options
.MapConfig.ornaments
has been removed. Updates can be applied directly toOrnamentsManager.options
. Previously the map's ornament options were updated onMapConfig.ornaments
withMapView.update
. (#310)OrnamentOptions
now uses structs to manage options for individual ornaments. For example,OrnamentOptions.scaleBarPosition
is nowOrnamentOptions.scaleBar.position
. (#318)- The
LogoView
class is now private. (#310) Style
has been significantly refactored, for example:- Synchronous APIs returning
Result
types now throw. - A number of APIs previously accessed via
__map
are now available via theStyle
object. - APIs with a
get
prefix have been renamed; for examplegetLayer<T>(with:type:)
tolayer<T>(withId:type:) throws
andgetSource<T>(id:type:)
tosource<T>(withId:type:) throws
- Synchronous APIs returning
Features ✨ and improvements 🏁
OrnamentsManager
is now a public class and can be accessed via theMapView
'sornaments
property.CompassDirectionFormatter
is now public. It provides a string representation of aCLLocationDirection
and supports the same languages as in pre-v10 versions of the Maps SDK. (#300)-OrnamentOptions
should now be accessed viaMapView.ornaments.options
. Updates can be applied directly to theoptions
property. Previously the map's ornament options were updated viaMapConfig.ornaments
. (#310)- The
LogoView
class is now private. (#310)
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-beta.19/MapboxMaps.zip?access_token=<access-token>