Repository navigation
Releases: mapbox/mapbox-maps-ios
Release list
v11.34.0-rc.1
Features β¨ and improvements π
-
View annotation collision boxes follow the view at runtime
Marking a subview with the experimentalUIView.mbxViewAnnotationCollisionBox(View.mbxViewAnnotationCollisionBox()in SwiftUI) after the annotation is added, moving it, hiding it, or removing the last marked one now updates the map. Marked views inside a hidden subtree no longer collide. -
Flush idle HTTP connections
Add experimentalHttpServiceFactory.evictAllConnections()to forcefully flush idle network connections, so subsequent requests establish fresh sockets.
Bug fixes π
-
View annotations at wrong positions after iPad rotation in windowed mode
View annotations stayed at wrong positions after rotating an iPad in windowed mode, until the next rotation or window resize. -
Crash in raster-array sources with missing icons
A crash could occur when a raster-array source reported a missing icon after its last requestor was removed. -
Paint properties were not always updated
Some paint properties were not updated correctly, including during SD/HD transitions, use-theme changes, and symbol/line feature state updates. -
Camera jumped at the end of long
fly(to:)animations
Longfly(to:)animations could end a few meters short of the target and then jump to the final camera position. -
Fill extrusion shadows did not update with new GeoJSON data
Shadow rendering did not update on fill extrusion layers when GeoJSON data changed. -
View annotations placed on outdated geometry after being re-added
View annotations removed and added again could be placed on stale layer geometry until the next camera change. -
Features with equal sort keys rendered in reverse order
Rendered features with equal layer sort keys now keep tile order, aligned with Mapbox GL JS. -
Symbol position did not update after changing
symbolZOffset
Symbol placement andqueryRenderedFeaturesused a wrong symbol position after asymbolZOffsetupdate.
π«οΈ Other
-
lineElevationGroundScaleTransitionis deprecated
It has no effect onLineLayer,PolylineAnnotation,PolylineAnnotationManager, andPolylineAnnotationGroup, becauseline-elevation-ground-scaleis a layout property and doesn't support transitions. -
Update feature state API documentation for accuracy.
Dependencies
- Update MapboxCommon to
24.34.0-rc.1. - Update MapboxCoreMaps to
11.34.0-rc.1.
Dependency requirements:
- Compatible version of Xcode:
26.5
v11.32.3
Bug fixes π
- Fix a crash that could occur when a raster-array source reports a missing icon after its last requestor is removed.
Dependencies
- Update MapboxCommon to
24.32.3. - Update MapboxCoreMaps to
11.32.3.
Dependency requirements:
- Compatible version of Xcode:
26.5
v11.33.0
Breaking changes β οΈ
- Images in
textFieldcan be smaller whentextSizedepends on zoom
The SDK now computes the base size of images embedded in a symbol layer'stextFieldfrom the largest text size in the tile's zoom range. As a result, the icons can be smaller when the text size depends on the zoom level.
Features β¨ and improvements π
- HD roads in the Mapbox Standard style
Use the newshowHdRoadsoption ofMapStyle.standard(...)to show detailed lane surfaces, andcolorHdRoadsto set their color. HD roads are off by default.
Bug fixes π
-
MapViewinitialization could block the main thread
MapViewcreated the scale bar's distance formatter at startup, even when the scale bar was hidden. On slow devices, this blocked the main thread for several seconds. The SDK now creates the formatter only when the scale bar needs it. -
View annotations did not move when their source data changed
A view annotation attached to a layer feature stayed at the feature's old position after the source updated, until the next zoom. The annotation now follows the new geometry. -
Overlapping semi-transparent buildings looked too dark
A semi-transparentFillExtrusionLayernext to the 3D buildings in the Mapbox Standard style blended twice where the two overlapped. Each pixel now blends once. -
Crash when several maps rendered view annotations at the same time
View annotation placement cached collision grid parameters in storage shared by all maps in the process, without synchronization. Two maps rendering at once could corrupt that cache and crash. Each map now computes the parameters on its own. -
View annotations flickered when camera padding left too little room
A view annotation attached to a layer feature must fit inside the camera-padded viewport. When the padding left less room than the annotation needed, the SDK searched for a new position every frame and discarded the previous one, so the annotation jumped or disappeared as tiles loaded or the zoom changed. The annotation now keeps its previous position in this case.
Dependencies
- Update MapboxCommon to
24.33.0. - Update MapboxCoreMaps to
11.33.0.
Dependency requirements:
- Compatible version of Xcode:
26.5
v11.32.2
Bug fixes π
- Fix a crash that could occur when multiple maps render simultaneously while displaying view annotations.
- Fix view annotations flickering or jumping position when camera padding leaves insufficient room to fit them.
- Fix stale layer geometry cache on readding view annotations
- Fix view annotations stuck to stale cached layer's geometry
Dependencies
- Update MapboxCommon to
24.32.2. - Update MapboxCoreMaps to
11.32.2.
Dependency requirements:
- Compatible version of Xcode:
26.5
v11.30.6
Dependencies
- Update MapboxCommon to
24.30.6. - Update MapboxCoreMaps to
11.30.6.
Dependency requirements:
- Compatible version of Xcode:
26.3
v11.32.1
Dependencies
- Update MapboxCommon to
24.32.1. - Update MapboxCoreMaps to
11.32.1.
Dependency requirements:
- Compatible version of Xcode:
26.5
v11.30.5
Bug fixes π
- Fixed wrong symbol position for placement and queryRenderedFeatures after symbol-z-offset property update
Dependencies
- Update MapboxCommon to
24.30.5. - Update MapboxCoreMaps to
11.30.5.
Dependency requirements:
- Compatible version of Xcode:
26.3
v11.33.0-rc.1
Breaking changes β οΈ
- Images in
textFieldcan be smaller whentextSizedepends on zoom
The SDK now computes the base size of images embedded in a symbol layer'stextFieldfrom the largest text size in the tile's zoom range. As a result, the icons can be smaller when the text size depends on the zoom level.
Features β¨ and improvements π
- HD roads in the Mapbox Standard style
Use the newshowHdRoadsoption ofMapStyle.standard(...)to show detailed lane surfaces, andcolorHdRoadsto set their color. HD roads are off by default.
Bug fixes π
-
MapViewinitialization could block the main thread
MapViewcreated the scale bar's distance formatter at startup, even when the scale bar was hidden. On slow devices, this blocked the main thread for several seconds. The SDK now creates the formatter only when the scale bar needs it. -
View annotations did not move when their source data changed
A view annotation attached to a layer feature stayed at the feature's old position after the source updated, until the next zoom. The annotation now follows the new geometry. -
Overlapping semi-transparent buildings looked too dark
A semi-transparentFillExtrusionLayernext to the 3D buildings in the Mapbox Standard style blended twice where the two overlapped. Each pixel now blends once.
Dependencies
- Update MapboxCommon to
24.33.0-rc.1. - Update MapboxCoreMaps to
11.33.0-rc.1.
Dependency requirements:
- Compatible version of Xcode:
26.5
v11.32.0
Breaking changes β οΈ
TileStore.loadTileRegionnow reports a partially downloaded region as a failure
The completion previously received success even when some of the region's resources had failed to download, leaving a manual comparison ofcompletedResourceCountagainstrequiredResourceCountas the only way to notice. It now completes withTileRegionError.partialLoad; the region is still usable but incomplete, and the load can be reattempted with anotherloadTileRegioncall.
Features β¨ and improvements π
-
Camera bounds APIs now support the globe projection
MapboxMap.coordinateBounds(for:),coordinateBoundsUnwrapped(for:),coordinateBoundsZoom(for:)andcoordinateBoundsZoomUnwrapped(for:)computed bounds for a flat viewport, so under globe they reported an area that did not match what was on screen. They now use the same algorithm as Mapbox GL JS and return accurate bounds under both projections. -
Tile region load progress now reports network backoff
TileRegionLoadProgressgainedbackoffUntil, the earliest point at which any request in the region can proceed, along withtotalTransfersWithBackoffCountandtotalScheduledBackoffTimefor the load as a whole. Progress callbacks now also fire when a load stalls on backoff, so a download waiting out rate limiting is distinguishable from one that has stopped.
Bug fixes π
-
UIKit view annotations never hid on overlap when using marked collision subviews
Subviews marked with the experimentalUIView.mbxViewAnnotationCollisionBoxwere measured before the annotation had laid out its subviews, so their collision boxes reached the renderer with zero size and no overlap was ever detected, even withallowOverlapset tofalse. Annotations that declare collision boxes are now laid out at their measured size before the boxes are collected. SwiftUI'sView.mbxViewAnnotationCollisionBox(_:)was never affected. -
Occluded symbols ignored the configured placement transition duration
Symbols hidden behind 3D buildings or terrain snapped between visible and hidden instead of fading, which shows up as flickering labels while the camera moves. Occlusion opacity is now advanced each frame from the time actually elapsed, soTransitionOptions.durationapplies to these fades unlessenablePlacementTransitionsis disabled. -
active-anchorexpression was silently accepted where it cannot be resolved
The active anchor is only known while symbols are being laid out, but the expression was allowed in filters,visibility, paint properties,text-anchor,text-variable-anchorand non-symbol layers, where it produced undefined results rather than an error. It is now rejected when the style is parsed, and remains available on the symbol layout properties that can resolve it. -
Raster tiles flashed empty when coming into view over terrain
With terrain enabled, raster tiles revealed by panning or zooming were drawn as an empty background until their own data finished loading. Under globe, such tiles already showed lower-resolution data from loaded tiles in the meantime, and the same fallback now applies with terrain. -
Location puck could disappear under 3D terrain after pitching the camera
After moving from a top-down view to a pitched one with terrain enabled, the puck could be hidden as if terrain covered it. It was tested against terrain depth data that hadn't been updated for the new camera yet. The puck's placement is now recomputed every frame and only checked against up-to-date terrain depth. -
Icons stuck on the wrong day/night appearance after changing the light preset
Layers whose properties depend onExp(.measureLight)brightness, such as icons that cross-fade between day and night images, could keep their previous appearance indefinitely after switchinglightPresetin the Standard style. The final brightness value arrived on a frame where these layers weren't re-evaluated, and nothing triggered a later update. Layers that read brightness are now re-evaluated whenever it changes.
Dependencies
- Update MapboxCommon to
24.32.0. - Update MapboxCoreMaps to
11.32.0.
Dependency requirements:
- Compatible version of Xcode:
26.5
v11.30.4
Dependencies
- Update MapboxCommon to
24.30.4. - Update MapboxCoreMaps to
11.30.4.
Dependency requirements:
- Compatible version of Xcode:
26.3