v11.29.0-rc.1
Pre-releaseFeatures ✨ and improvements 🏁
-
New experimental
RasterLayer.rasterAllowDrapingproperty
Draping blends a raster layer's emissive color into the globe/terrain surface, which can't fully preserve custom shading. SettingrasterAllowDrapingtofalsetakes a raster layer out of draping by applying a small elevation and a ground elevation reference, keeping shading consistent between draped and non-draped render modes. -
SymbolLayer.symbolZOffsetpromoted from experimental to stable
The property is already used in Mapbox Standard styles and by customers, so it no longer carries the experimental label. -
Config option accepts an object;
distanceexpression accepts an expression
Import config properties can now take an object literal, and the second argument of thedistanceexpression can now be any expression (for example["config", "route-line-geometry"]) instead of only a literal — useful for filtering out off-route traffic near a route line. -
Clarified documentation for
RasterLayer.rasterColor,rasterColorMix, andrasterColorRange
Bug fixes 🐞
-
Fixed a crash in apps compiled with Swift 6 language mode when
TileStore/OfflineManageroffline callbacks fired off the main thread
Swift 6 infers a closure's actor isolation from its capture context; a non-@Sendableclosure capturing@MainActor-isolated state (for example[weak self]on a view controller) was inferred main-actor-isolated, so calling it from TileStore's worker thread crashed at runtime. Offline APIcompletion/progressclosures and their model types are now@Sendable, preventing the crash. -
Fixed a crash caused by a data race when subscribing to or cancelling a
Signalfrom a background thread while it emits on another thread
EverySignalstored its handlers in a plain, unsynchronized array. A background subscribe or cancel racing an emission could corrupt the array's buffer, most visibly as a crash when subscribing through Combine's.subscribe(on:). Subscription is now thread-safe, preventing the crash. -
View annotations could reposition frequently on overlapping route sections
When a view annotation couldn't be placed at its point, the SDK discarded its previous geometry and searched for a new position purely by tile order, which could make the annotation jump. Previous placement information is now preserved, so the SDK searches neighboring tiles instead of restarting the search from scratch. -
Line borders could bleed onto a neighboring segment on short segments
The round-join anchor used for a line's border sits at the miter point, up to two half-widths from the corner; on segments shorter than the line's width, that point could land outside the segment and paint border color across the next one. The anchor is now clamped to stay within one half-width on short segments. -
Fixed a crash accessing a tile that had already been removed
Cached render tiles could still be referenced after the tiles they pointed to were removed during a tile pyramid update or clear. Removed tiles are now dropped from the cache at the same time, so no reference to a deleted tile survives. -
Requesting a tile above an offline pack's max zoom could briefly show a blank tile
Such a request sometimes returned an empty tile instead of reporting the data as missing, which was treated downstream as a genuinely empty tile — dropping the fallback to a parent tile and leaving a blank area, briefly online or persistently offline. The tile store now reports a proper miss so the map falls back to cache or network instead. -
Symbols could appear at the wrong height for a frame when 3D buildings were toggled via style config
Toggling 3D buildings through a style config option didn't immediately recompute symbol elevation, so labels and icons could sink or float briefly. -
Reduced aliasing on minified dashed lines
Densely dashed lines, such as HD zebra crossings, could shimmer or crawl when zoomed out because each dash's average coverage wasn't preserved at small sizes. Dash edges are now softened and faded toward their average coverage instead.
Dependencies
- Update MapboxCommon to
24.29.0-rc.1. - Update MapboxCoreMaps to
11.29.0-rc.1.
Dependency requirements:
- Compatible version of Xcode:
26.3