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 7.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the Mapbox GL Style Specification, applies them to vector tiles that conform to the Mapbox Vector Tile Specification, and renders them using OpenGL.

Rendering now occurs on the main thread, fixing a hang when calling -[MGLMapView styleURL] before the map view has fully loaded or while the application is in the background. (#2909)

Added a -reloadStyle: action to MGLMapView to force a reload of the current style. (#4728)

A more specific user agent string is now sent with style and tile requests. (#4012)

Added a new option to MGLMapDebugMaskOptions, MGLMapDebugOverdrawVisualizationMask, that highlights overlapping drawing operations instead of the usual rendered output. (#5403)

Interactivity

The compass, user dot, and visible annotations are now accessible to VoiceOver users. (#1496)

Added a method to MGLMapView, -anchorPointForGesture:, that you can override to anchor gestures at a point other than the user location. (#5302)

Added a property to MGLMapView, decelerationRate, that allows you to speed up or slow down the drift animation at the end of a user gesture. You can also use this property to disable the drift animation entirely. (#5504)

Improved responsiveness when zooming in then immediately panning around. (#4595)

Added a new method, -[MGLMapView cameraThatFitsCoordinateBounds:], to get a camera that you can pass into -setCamera: that fits the given coordinate bounds. (#4790)

Annotations

MGLPointAnnotation and custom MGLAnnotation implementations (but not MGLMultiPoint) can be backed by an MGLAnnotationView instead of an MGLAnnotationImage. MGLAnnotationView is a subclass of UIView, so you can use Core Animation and other familiar technologies with it. To associate an MGLAnnotation with an MGLAnnotationView, implement -mapView:viewForAnnotation: in your MGLMapViewDelegate class. (#4801)

An MGLAnnotation can be relocated by changing its coordinate property in a KVO-compliant way. An MGLMultiPoint cannot be relocated. (#3835)

Setting the image property of an MGLAnnotationImage to nil resets it to the default red pin image and reclaims resources that can be used to customize additional annotations. (#3835)

An MGLPolygon can now have interior polygons, representing holes knocked out of the overall shape. (#5110)

Packaging

Applications linking against the SDK static framework no longer need to add -ObjC to the Other Linker Flags (OTHER_LDFLAGS) build setting. If you previously added this flag solely for this SDK, removing the flag may potentially reduce the overall size of your application. (#4641)

Removed the armv7s slice from the SDK to reduce its size. iPhone 5 and iPhone 5c automatically use the armv7 slice instead. (#4641)

The SDK is now localizable. No localizations are currently provided, other than English, but if you need a particular localization, you can install the SDK manually and drop a .lproj folder into the framework. (#4783)