Skip to content

v11.29.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@mapbox-github-ci-writer-public-1 mapbox-github-ci-writer-public-1 released this 11 Aug 11:29
· 6 commits to main since this release

Features ✨ and improvements 🏁

  • New experimental RasterLayer.rasterAllowDraping property
    Draping blends a raster layer's emissive color into the globe/terrain surface, which can't fully preserve custom shading. Setting rasterAllowDraping to false takes 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.symbolZOffset promoted 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; distance expression accepts an expression
    Import config properties can now take an object literal, and the second argument of the distance expression 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, and rasterColorRange

Bug fixes 🐞

  • Fixed a crash in apps compiled with Swift 6 language mode when TileStore/OfflineManager offline callbacks fired off the main thread
    Swift 6 infers a closure's actor isolation from its capture context; a non-@Sendable closure 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 API completion/progress closures and their model types are now @Sendable, preventing the crash.

  • Fixed a crash caused by a data race when subscribing to or cancelling a Signal from a background thread while it emits on another thread
    Every Signal stored 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