Mapbox iOS SDK

The Mapbox iOS SDK is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 8.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the Mapbox Style Specification, applies them to vector tiles that conform to the Mapbox Vector Tile Specification, and renders them using OpenGL.

Mapbox iOS SDK screenshots

For setup information, check out the Mapbox iOS SDK homepage. For detailed usage instructions, read “First steps with the Mapbox iOS SDK” and consult the online examples. A full changelog is also available.

If you have any questions, please contact our support team. We welcome your bug reports and feature requests.

Changes in version 3.6.0


  • Added support for 3D extrusion of buildings and other polygonal features via the MGLFillExtrusionStyleLayer class and the fill-extrusion layer type in style JSON. (#8431)
  • MGLSymbolStyleLayer’s iconImageName, iconScale, textFontSize, textOffset, and textRotation properties can now be set to a source or composite function. (#8544, #8590, #8592, #8593)
  • Fixed an issue where setting the MGLVectorStyleLayer.predicate property failed to take effect if the relevant source was not in use by a visible layer at the time. (#8653)
  • Fixed an issue causing a composite function’s highest zoom level stop to be misinterpreted. (#8613, #8790)
  • Fixed an issue where re-adding a layer that had been previously removed from a style would reset its paint properties. Moved initializers for MGLTileSource, MGLStyleLayer, and MGLForegroundStyleLayer to their concrete subclasses; because these classes were already intended for initialization only via concrete subclasses, this should have no developer impact. (#8626)
  • Feature querying results now account for any changes to a feature’s size caused by a source or composite style function. (#8665)


  • Fixed an issue causing a view-backed annotation to disappear immediately instead of animating when the annotation’s coordinate property is set to a value outside the current viewport. (#8565)
  • Fixed an issue in which MGLMapView overrode the tint colors of its annotation views. (#8789)

User interaction

  • Added a scale bar to MGLMapView that indicates the scale of the map. (#7631)
  • Fixed an issue where gesture recognizers associated with map view interactivity were not disabled when their related interactions were disabled. (#8304)

Other changes

  • Xcode 8.0 or higher is now recommended for using this SDK. (#8775)
  • Updated MGLMapView’s logo view to display the new Mapbox logo. (#8771, #8773)
  • Fixed a crash or console spew when MGLMapView is initialized with a frame smaller than 64 points wide by 64 points tall. (#8562)
  • The error passed into -[MGLMapViewDelegate mapViewDidFailLoadingMap:withError:] now includes a more specific description and failure reason. (#8418)
  • Fixed an issue rendering polylines that contain duplicate vertices. (#8808)