Mapbox Maps iOS
Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMayJun
LessMore
Releases35Avg11/moVersionsuntagged-89612c5a0817754edc8c to v11.24.3
Changes
- Fixed a use-after-free crash in
MapImplthat could occur when asynchronous tasks accessed a partially-destroyed map instance, e.g. under heavy load or rapid view recreation. - Fixed a crash in the vector tile layer data cache when a sibling tile was destroyed during cache iteration.
- Improved anti-aliasing for lines with a non-zero
line-border-width, fixing pixelated rendering of thick line borders.
Dependencies
- Update MapboxCommon to
24.21.6. - Update MapboxCoreMaps to
11.21.6.
Dependency requirements:
- Compatible version of Xcode:
16.4
Bug fixes 🐞
- Crash when modifying a layer that shares an id with an imported style
When a layer in the root style and a layer in an imported style shared the same id, a runtime change to that layer caused both layers to be re-sent to the renderer as duplicates, triggering a crash. The lookup that locates the layer being updated now uses the fullFullStyleLayerId(id + import scope) instead of only theStyleLayerId, so the correct single layer is updated and duplicates are no longer emitted.
Dependencies
- Update MapboxCommon to
24.24.2. - Update MapboxCoreMaps to
11.24.2.
Dependency requirements:
- Compatible version of Xcode:
16.4
untagged-89612c5a0817754edc8c
Bug fixes 🐞
- Crash when modifying a layer that shares an id with an imported style
When a layer in the root style and a layer in an imported style shared the same id, a runtime change to that layer caused both layers to be re-sent to the renderer as duplicates, triggering a crash. The lookup that locates the layer being updated now uses the fullFullStyleLayerId(id + import scope) instead of only theStyleLayerId, so the correct single layer is updated and duplicates are no longer emitted.
Dependencies
- Update MapboxCommon to
24.24.2. - Update MapboxCoreMaps to
11.24.2.
Dependency requirements:
- Compatible version of Xcode:
16.4
Features ✨ and improvements 🏁
- Featureset feature access
Exposed the newFeaturesetFeature.originalFeatureproperty, giving you direct access to the underlying publicFeature(geometry, properties, id) from any featureset hit. - Landmark Level-of-Detail rendering
The renderer now supports landmark models with LOD meshes when the tileset provides them, including a BVH-backed raycast path for more accurate label placement on top of 3D buildings.
Bug fixes 🐞
- Use-after-free crash in
MapImpl
MapImpl's destructor previously invalidated theWeakFactoryof its derivedStyleManagerImplbut not its own, leaving a short window where in-flight asynchronous tasks could touch a partially destroyed instance. The ownWeakFactoryis now invalidated as well, eliminating the crash. MapViewrendered blank on an already-active CarPlay scene
When a freshMapViewwas instantiated and attached to a scene that had already activated (a common pattern on CarPlay), the SDK missed thesceneDidActivatenotification and never cached the connected scene — leaving the display link idle and the map blank. The connected scene is now seeded ondidMoveToWindowby walking up the responder chain, so the map renders correctly regardless of when it joins the scene.- Style import config lost during a URL swap
CallingsetStyleImportConfigProperty(e.g.lightPreset, color overrides) right afterupdateStyleImportWithURIcould be silently dropped: the property was being applied to the soon-to-be-replaced import. Imports are now updated in place — the sameImportobject stays in the imports vector while only its internalStyle::Implis swapped — so config updates always land on the correct import. Observer callbacks (onStyleLoadingFinished, etc.) are also wired up only after the import is fully integrated, removing inconsistent intermediate states. - Crash in
VectorTileLayerDatacache when a sibling tile died mid-iteration
The cache reuses siblingVectorTileLayerDatainstances (same data/layer, different offset) to avoid redundant parsing. It used to keep the sibling as a raw pointer; if the tile that owned that sibling was destroyed before the copy completed, the pointer dangled and dereferencing it crashed. Siblings are now retained viashared_ptrfor the duration of the copy. applyLUTproduced incorrect colors with premultiplied input
applyLUTwas using the RGB channels of the input color as-is. Since input colors are essentially always premultiplied, RGB channels are scaled by alpha, so the LUT was being sampled at the wrong coordinates — producing dimmer-than-expected output. The lookup now operates in unpremultiplied color space.
Dependencies
- Update MapboxCommon to
24.24.1. - Update MapboxCoreMaps to
11.24.1.
Dependency requirements:
- Compatible version of Xcode:
16.4
Changes
- Fixed an issue where rapidly switching basemap import URL and updating its configuration (such as light preset or color theme) could leave the map with stale settings. Configuration updates issued during a pending import swap are now reliably applied to the new style.
Dependencies
- Update MapboxCommon to
24.21.5. - Update MapboxCoreMaps to
11.21.5.
Dependency requirements:
- Compatible version of Xcode:
16.4
Features ✨ and improvements 🏁
- Support symbol paint properties in appearances — symbol layers can now use feature-dependent appearances for paint properties (not only layout), enabling richer per-feature styling of text and icons.
- Improve rendering performance of feature cutouts — optimized depth sampling in the cutout shader yields noticeably smoother rendering when feature cutouts are enabled (e.g. elevated route with cutouts).
- [tile_store] Evict tiles based on LRU and optimize eviction — the default eviction policy now uses least-recently-used instead of expiration-based scoring, keeping frequently-viewed tiles around longer and making cleanup passes faster.
- [tile_store] TileStore can now store 3D landmark/navigation tile content types, unblocking their use in offline regions.
- [tile_store] Add support for USB import radius — new import parameter for seeding offline tile packs from USB media within a configurable radius.
- Settings can be set on startup —
MapboxCommonnow loadspersistent_settings.jsonandnon_persistent_settings.jsonfrom the app data path at startup, allowing configuration changes without an app rebuild.
Bug fixes 🐞
- Fix build issue for Objective-C consumers using Xcode 26 / Swift 6.
- Fix
scale-factorapplied twice to icon with feature-dependent icon-size — icons using a data-drivenicon-sizeno longer render over-sized under non-default scale factors. - Fix fog range for custom FOVs in globe view — the globe no longer washes out in fog at small FOV changes; default globe fog range was retuned for more natural appearance.
- Fix for broken files in gl-native cache — the tile store worker now handles a code path that could leave corrupted entries in the gl-native disk cache, eliminating related load failures.
- Prevent tilestore crash on shutdown — fixed a use-after-free in the tile store worker that could crash the app when the tile store was torn down while work was still in flight.
- Fix 3D models occasionally not rendering on first load on some devices, caused by background shader compilation not signaling the renderer when compilation completed.
- Fix a crash in
ConfigExpressionwhere dereferencing an empty optional caused undefined behaviour.
Dependencies
- Update MapboxCommon to
24.23.0. - Update MapboxCoreMaps to
11.23.0.
Dependency requirements
- Compatible version of Xcode:
16.4
Bug fixes 🐞
- Fix above-ground route line not rendering over tunnel geometry when cutout is active.
- Fix rendering artifacts on feature cutout geometries caused by incorrect shader clipping.
- Fix a potential crash in style configuration expression evaluation when a config value is unset.
Dependencies
- Update MapboxCommon to
24.21.3. - Update MapboxCoreMaps to
11.21.3.
Dependency requirements:
- Compatible version of Xcode:
16.4
Features ✨ and improvements 🏁
- Expose
heightandminHeightproperties onStandardBuildingsFeature. - Internal fixes and performance improvements.
Bug fixes 🐞
- Fix old 3D puck model remaining after updating the puck model.
- Fix location indicator cutout appearing in the wrong position on devices with high pixel density.
- Fix lines with sub-pixel width being rendered thicker than intended.
- Fix tile data decompression by properly tracking compression state in tile storage.
- Fix tile store cleanup task incorrectly deleting in-progress downloads.
- Fix tunnel roads being clipped or missing near the top of the screen at high pitch angles when crossing tile boundaries.
- Fix stretchable icons used with
icon-text-fitdisappearing in some situations - Fix dashed lines not rendering correctly when
line-dasharrayvalues are smaller than 1.
Dependencies
- Update MapboxCommon to
24.22.0. - Update MapboxCoreMaps to
11.22.0.
Dependency requirements:
- Compatible version of Xcode:
16.4
Changes
Features and Improvements
- Support paint properties in appearances
- Improve performance of View Annotations collisions test
- Share tile sources across style imports when URLs match
- Add UBO support for symbol paint properties
- Expose
MapboxMap.onStyleAttributionsChanged
Bug fixes 🐞
- Fix tile store eviction failing to clean up files for decompressed tiles, causing gradual storage growth.
- Fix gaps in elevated route line rendering at ramp transitions and tile borders.
- Fix indicator cutout (location puck area) appearing in the wrong position on high-DPI displays.
- Fix incorrect shadow culling on fill-extrusion layers.
- Fix ambient occlusion not being clipped when fill-extrusion layers are clipped by clip layers.
- Fix clip layer updates not always refreshing clipped layers and shadows.
- Fix feature cutout rendering artifacts on some devices caused by insufficient shader precision.
- Fix rendering of stacked underground 3D roads.
- Fix a crash that could occur when the map is destroyed during style loading.
- Fix underground road geometry being clipped in orthographic projection with small viewports.
- Fix map flickering caused by stencil buffer conflicts between raster and hillshade layers.
- Fix potential ANRs when receiving location updates under heavy system load.
- Internal fixes and performance improvements.
Dependencies
- Update MapboxCommon to
24.21.0. - Update MapboxCoreMaps to
11.21.0.
Dependency requirements:
- Compatible version of Xcode:
16.2
Last Checked
1h ago
Latest
v11.21.7
