Skip to content

Releases: mapbox/mapbox-maps-ios

v11.34.0-rc.1

v11.34.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

Features ✨ and improvements 🏁

  • View annotation collision boxes follow the view at runtime
    Marking a subview with the experimental UIView.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 experimental HttpServiceFactory.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
    Long fly(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 and queryRenderedFeatures used a wrong symbol position after a symbolZOffset update.

πŸ’«οΈ Other

  • lineElevationGroundScaleTransition is deprecated
    It has no effect on LineLayer, PolylineAnnotation, PolylineAnnotationManager, and PolylineAnnotationGroup, because line-elevation-ground-scale is 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

Choose a tag to compare

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

Choose a tag to compare

Breaking changes ⚠️

  • Images in textField can be smaller when textSize depends on zoom
    The SDK now computes the base size of images embedded in a symbol layer's textField from 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 new showHdRoads option of MapStyle.standard(...) to show detailed lane surfaces, and colorHdRoads to set their color. HD roads are off by default.

Bug fixes 🐞

  • MapView initialization could block the main thread
    MapView created 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-transparent FillExtrusionLayer next 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

Choose a tag to compare

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

Choose a tag to compare

Dependencies

  • Update MapboxCommon to 24.30.6.
  • Update MapboxCoreMaps to 11.30.6.

Dependency requirements:

  • Compatible version of Xcode: 26.3

v11.32.1

Choose a tag to compare

Dependencies

  • Update MapboxCommon to 24.32.1.
  • Update MapboxCoreMaps to 11.32.1.

Dependency requirements:

  • Compatible version of Xcode: 26.5

v11.30.5

Choose a tag to compare

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

v11.33.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

Breaking changes ⚠️

  • Images in textField can be smaller when textSize depends on zoom
    The SDK now computes the base size of images embedded in a symbol layer's textField from 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 new showHdRoads option of MapStyle.standard(...) to show detailed lane surfaces, and colorHdRoads to set their color. HD roads are off by default.

Bug fixes 🐞

  • MapView initialization could block the main thread
    MapView created 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-transparent FillExtrusionLayer next 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

Choose a tag to compare

Breaking changes ⚠️

  • TileStore.loadTileRegion now 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 of completedResourceCount against requiredResourceCount as the only way to notice. It now completes with TileRegionError.partialLoad; the region is still usable but incomplete, and the load can be reattempted with another loadTileRegion call.

Features ✨ and improvements 🏁

  • Camera bounds APIs now support the globe projection
    MapboxMap.coordinateBounds(for:), coordinateBoundsUnwrapped(for:), coordinateBoundsZoom(for:) and coordinateBoundsZoomUnwrapped(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
    TileRegionLoadProgress gained backoffUntil, the earliest point at which any request in the region can proceed, along with totalTransfersWithBackoffCount and totalScheduledBackoffTime for 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 experimental UIView.mbxViewAnnotationCollisionBox were 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 with allowOverlap set to false. Annotations that declare collision boxes are now laid out at their measured size before the boxes are collected. SwiftUI's View.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, so TransitionOptions.duration applies to these fades unless enablePlacementTransitions is disabled.

  • active-anchor expression 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-anchor and 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 on Exp(.measureLight) brightness, such as icons that cross-fade between day and night images, could keep their previous appearance indefinitely after switching lightPreset in 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

Choose a tag to compare

Dependencies

  • Update MapboxCommon to 24.30.4.
  • Update MapboxCoreMaps to 11.30.4.

Dependency requirements:

  • Compatible version of Xcode: 26.3