iOS SDK Release Notes

The iOS SDK release notes describe recent improvements, fixes, and new features for the Meridian iOS SDK which can be used to create new iOS Meridian-powered apps or incorporate Meridian functionality in existing iOS apps.


Go here to download the latest version of the iOS SDK.

May 30, 2019 - 5.4.0

  • Fixed: MRSearchRequest wasn't limiting the number of search results returned as it should.
  • Fixed: If slide-up cards have content, they'll open to a medium state to show that.
  • Fixed: iOS search results now have parity with Android search results.
  • Fixed: Tag icons in the search results didn't match the icons on the map.
  • Various minor improvements and fixes.

April 29, 2019 - 5.3.0

  • Improved: It's now possible to customize the blue dot's color and shape.
  • Improved: On the blank Search screen, there are now tappable amenities buttons that will start directions to the closest one.
  • Fixed: Some iPad rotation issues.
  • Various minor improvements and fixes.

April 1, 2019 - 5.2.0

  • New: Added Swedish language support.
  • Improved: Visual updates to the search results.
  • Fixed: An issue with MRMapViewController.
  • Fixed: Various translation issues.
  • Various minor improvements and fixes.

February 28, 2019 - 5.1.0

  • Improved: Better error messages when some content doesn't load.
  • Improved: Support for recent Meridian SSO improvements.
  • Fixed: Routes close to the edge of the top part of the screen were covered up by the direction instructions.
  • Various minor improvements and fixes.

January 31, 2019 - 5.0.0

  • New: For locations with a large number of buildings, the level picker only shows building names until a specific building is selected.
  • New: When searching, the SDK checks the is_map_published field to filter out unpublished maps from the results.
  • Improved: MRDBottomSheetAbstractDelegate's method dataLoadedMethod now loads actual data.
  • Improved: Cleaned out old, unused strings to make our translators' lives easier.
  • Improved: On iPads, map annotation selections now use the card view.
  • Fixed: Placemark callout sheets automatically fully extend when the placemark has additional information.
  • Fixed: The map label disappeared sometimes.
  • Various minor improvements and fixes.

December 13, 2018 - 4.10.0

  • Improved: MREditorRequestManager handles Tags without images more gracefully.
  • Improved: MRMapViewController is making less assumptions about how the screen will be laid out.
  • Improved: Like Android, the iOS SDK now validates that the map being loaded belongs to the current location.
  • Improved: The SDK exposes latitude and longitude values of Beacons and placemarks.
  • Fixed: An issue related to the Safe Area in newer iPhone models.
  • Fixed: Map labels were getting truncated at two lines. They have three lines now.
  • Various minor improvements and fixes.

October 25, 2018 - 4.9.0

  • New: Removed support for iOS 9.
  • Improved: Better handling of timed out requests.
  • Improved: Meridian configuration can be specified in the info.plist.
  • Improved: On slide-up sheets, long titles now wrap instead of being truncated.
  • Improved: The placemark description field is available to use.
  • Improved: To match the Android SDK's OverlayMarker, map overlays created using MRPathOverlay respond to user actions.
  • Improved: When your device isn't connected to the internet, the app doesn't spend time trying to connect.
  • Fixed: The watermark was sometimes reappearing, even when it was set to be hidden.
  • Fixed: When using MRMapView, the Directions button won't be shown.
  • Various minor improvements and fixes.

September 27, 2018 - 4.8.0

  • Improved: The directions timeout has been increased to 30 seconds.
  • Fixed: It wasn't possible to create multiple Location Sharing sessions.
  • Fixed: Long floor names weren't being truncated on the Map screen.
  • Fixed: Minor UI issues related to iOS 12.
  • Various minor improvements and fixes.

Augusts 30, 2018 - 4.7.0

  • Improved: When searching for a Tag in AppViewer, there's better feedback to let the user know what's happening.
  • Improved: When you request a direction, there's an indicator to show you that the app is working.
  • Fixed: If you got to a map by searching and then selected a placemark or a Tag, the map level was missing.
  • Fixed: The Rewards placemark type had the wrong icon.
  • Fixed: When routing, the Build/Level wasn't visible.
  • Various minor improvements and fixes.

July 26, 2018 - 4.6.0

  • Improved: Aesthetic improvements to buttons, including a visual change when buttons are tapped.
  • Improved: Visual improvements to the directions Overview button and the directions step viewer.

June 28, 2018 - 4.5.0

  • New: "Desk" and "Device Charging" placemark types.
  • New: Use showsWatermark to toggle the visibility of Aruba branding on your maps.
  • Improved: Better map label design.
  • Improved: When routing, more graceful handling of lost connectivity.
  • Improved: Several UI improvements related to modals.
  • Fixed: An issue with MRMapViewController and placemark keys.
  • Various minor improvements and fixes.

May 30, 2018 - 4.4.0

  • New: MRMapView now shows the longPressMap block so that iOS can use this gesture on a map if you decide to do so.
  • New: Better documentation of MRAnnotationView.
  • New: Compass orientation alert threshold is configurable between 45 and 135 degrees.
  • New: On iOS 11+, support for upload progress indicator.
  • Improved: Docs cleanup.
  • Improved: If directions mention singular feet or meters, the SDK uses the correct singular terms too.
  • Improved: Increased left padding on Tag callouts to improve aesthetics and readability.
  • Improved: More efficient processing of location sharing updates.
  • Improved: Removed MRPlacemarkViewController because it wasn't being used.
  • Improved: When triggering a mapless campaign, iOS now clocks the correct Beacon minor value. This makes it easier to reuse Beacons for other campaigns.
  • Fixed: MRMapViewController wasn't respecting custom nav bar titles after routing.
  • Fixed: An issue related to annotation callouts.
  • Fixed: An issue with requestedDirectionsToPlacemark failing upon repeat use.
  • Fixed: If a device setting didn't allow use of location, direction requests weren't prompting for a starting location as it should.
  • Fixed: Location sharing icons were flickering on the map.
  • Fixed: The compass reorient message was getting stuck even after the compass was realigned to the direction line.
  • Fixed: There was a crash when someone used location sharing to get directions to a non-location sharing user.
  • Various minor improvements and bug fixes.

April 27, 2018 - 4.3.1

  • Fixed: Some label text was briefly, and incorrectly, italicized.

April 27, 2018 - 4.3.0

  • Improved: Minor UI update to the level picker search bar.
  • Improved: Minor update to bring iOS slightly more inline with Android.
  • Improved: Minor visual update to map buttons.
  • Improved: The "Route not Found" message can be disabled.
  • Improved: The compass re-orientation banner message can be disabled.
  • Fixed: On iPads, the level picker wasn't showing the user's current level.

April 3, 2018 - 4.2.0

  • Improved: New and improved placemark icon and label style.
  • Improved: The app will retry failed requests to the Editor, instead of giving up the first time.
  • Improved: We've increased the height of all our buttons to increase legibility and tappability.
  • Fixed: If you weren't using MRMapViewController, directions wouldn't work. If you want to use MRMapView instead, now you can.
  • Fixed: Tapping the blue dot would make the app crash.
  • Fixed: The app would crash when canceling a route started from an Event page.
  • Fixed: The bottom sheet was making room for images that weren't there.
  • Fixed: There was some missing left padding on the blue dot callout text.

February 28, 2018 - 4.1.0

  • New: The iOS SDK no longer supports iOS 8. The deprecation warnings have been updated to reflect this.
  • Improved: Ensuring we comply with iOS 11 requirements in order to prompt for Location Permissions.
  • Improved: Routing will no longer autoadvance to the next routing segment if it's less than 6.1 meters.
  • Improved: The Map buttons have been fattened up to make them easier tap targets.
  • Fixed: A rare and obscure routing crash.
  • Fixed: Location Sharing timestamps differed on the list screen versus the Map screen.
  • Fixed: On the Map screen, it wasn't possible to hide the Location button, but it is now.
  • Fixed: Tapping the blue dot caused a crash. It doesn't now.
  • Fixed: The End Route button wasn't being translated.
  • Fixed: When routing to a placemark, the accessibility button disappeared.
  • Fixed: When routing, Building/Level disappeared.
  • Fixed: When the Route Overview button was tapped, the accessibility icon and map label disappeared. They're here to stay, now.

February 8, 2018 - 4.0.1

  • Fixed: An issue with the 4.0 bundled SDK.
  • Improved: Better IP anonymization.

January 31, 2018 - 4.0.0

  • Fixed: A minor memory leak in LocationKit.
  • Fixed: An issue with gpsTransform math.
  • Fixed: Bug handling special characters in passwords.
  • New: Dutch and Czech translation support.
  • New: Look and feel to match the iOS 11 map experience.
  • New: Optional 'all done' completion handler to MRSearch.

December 14, 2017 - 3.10.0

  • New: We've exposed placemark UIDs on iOS, which means you can reference them directly. This is already available in the Android SDK.
  • Fixed: A URL in the README was broken.
  • Fixed: Now that we have Active and Passive Campaigns, we have greater control over when a campaign triggers. Unfortunately, MRCampaignManager was triggering campaigns before checking the campaign type.

October 26, 2017 - 3.9.0

  • Miscellaneous bug fixes and improvements.

September 28, 2017 - 3.8.0

  • Fixed: Google Analytics timeouts and MRAnalyticsController would cause the app to lock up temporarily. The SDK handles these timeouts more gracefully now.
  • Fixed: Removed the unused campaignManagerDeviceUserInfo method, because we don't support Apple push notifications (APNs).
  • Fixed: The loading message spinner was left aligned, which looked funny on an iPad.
  • Improved: In Campaign Info, campaign status was changed from Active/Inactive to Enabled/Disabled to match the Editor.

August 24, 2017 - 3.7.0

  • Fixed: Issues related to an upcoming feature.
  • Improved: Better internal metrics.
  • Improved: Increased the minimum GPS constant to 10 meters.

July 27, 2017 - 3.6.0

  • Fixed: A bug related to an upcoming feature.
  • Fixed: Miscellaneous bugs.
  • Fixed: The map label wasn't showing the map name correctly.
  • Improved: Support for a new upcoming endpoint.

June 20, 2017 - 3.5.0

  • Fixed: The animated route loading animation wasn't visible on 4.x device.
  • Improved: Active Campaigns now support on exit triggers.
  • Improved: New API endpoints for simulated location and campaign triggers.
  • Improved: The externalID field has been added to the asset tracking API endpoint.

May 31, 2017 - 3.4.0

  • Fixed: Campaign dwell times weren't being reported to the Editor.
  • Fixed: Sometimes the app would crash when switching locations while a route was being plotted.
  • Fixed: The SDK now uses the new maps API endpoint.
  • Improved: Better search for an upcoming feature.
  • Improved: Better support for TalkBack/Accessibility.
  • Improved: The new Search API is now available.
  • Improved: The Samples app points to a new, read-only location.
  • Improved: There's better messaging when a map can't be loaded.
  • New: Support for an upcoming feature.

April 18, 2017 - 3.3.0

  • Fixed: The default placemark zoom levels match iOS now.
  • Fixed: The Directions and Show My Location buttons weren't vertically aligned. They are now.
  • Fixed: The Samples app reorient message wasn't disappearing after canceling directions.
  • Improved: Making sure things are working right for an upcoming feature.
  • Improved: The Samples app no longer includes the Meridian app token. Please use your own app token.
  • Improved: We've put the application token in a "shared" location to make it easier to set up location sharing and other upcoming features.
  • New: Internal admin tools.

March 27, 2017 - 3.2.0

  • Fixed: Miscellaneous bugs.
  • Fixed: There was a bug related to manually advancing directions.
  • Improved: Performance tweaks.
  • Improved: The Location button behavior is now customizable.
  • Improved: When the routing compass is enabled, there are orientation alerts that will tell you if you're facing away from a route's direction.

February 22, 2017 - 3.1.0

  • Fixed: The blue dot had an excessive delay when updating to the user's current location.
  • Fixed: The compass direction would flip when the device was rotated downward past the horizontal.
  • Fixed: The default style for an inaccessible area is full white with full opacity. This was causing problems because this was also the style for unset colors. It renders correctly now.
  • Improved: The double-tap zoom is smooth now.
  • New: A two-finger single tap gesture zooms out.
  • New: The SDK checks if all required dependencies have been added to the project.

January 27, 2017 - 3.0.0

  • Added: Customizable rerouting parameters.
  • Fixed: An occasional crash when loading placemarks.
  • Fixed: Certain BuildConfig values were being ignored.
  • Fixed: Ellipse map elements render.
  • Fixed: Issues with compass calibration and accuracy.
  • Fixed: Push notifications weren't being received on Android 7.
  • Improved: Consolidated loading spinner and MapLabel when loading placemarks.
  • Improved: The blue dot compass is a cone instead of an arrow, matching iOS.
  • Improved: Zoom levels adjusted to match iOS SDK.

December 14, 2016 - 2.19.0

  • Fixed: Adjusted text size on default PlacemarkMarker.
  • Fixed: The Map Name label is back.
  • Improved: More consistent results for the new PlacemarkRequest.
  • Improved: More predictable and consistent zoom while navigating.
  • New: MapFragment and Mapview can now be initialized with a placemark key. This will cause them to load only a single placemark.
  • New: Asynchronous loading for large sets (100+) of placemarks.

November 4, 2016 - 2.18.0

  • Fixed: The Map Controls are now hidden correctly.
  • Fixed: The My Location button was immediately causing an error when a location hadn't been generated. It now starts a loading spinner.
  • Fixed: The SDK calls onMapRenderFinished after initial centering of the MapView, instead of before.
  • Improved: Location accuracy.
  • Improved: The placemark UID is now accessible.
  • New: Minimum supported Android API is 16.
  • New: The SDK uses the new placemarks API.

September 29, 2016 - 2.17.0

  • Fixed: The location button wasn't hidden properly.
  • Improved: In the map picker, buildings are sorted alphabetically and map levels are sorted in descending order.
  • New: The GPS accuracy threshold value is now modifiable.

September 22, 2016 - 2.16.1

  • Fixed: Apps crashed when a Location Sharing friends icon was tapped.

September 20, 2016 - 2.16.0

  • Fixed: If a placemark was selected and a user chose a different floor using the map level picker, the selected placemark appeared on the new map.
  • Fixed: If the map level picker was opened, and then closed by tapping outside the menu, a white circle was rendered on the map.
  • Fixed: On some devices, the selected placemark icon underlay was offset too much.
  • Fixed: Some Location Sharing friend icons were larger than others.
  • Fixed: The formatting and alignment of the placemark text callout was inconsistent.
  • Fixed: The map level picker wasn't visible on some overview maps.
  • Improved: Map UI design.
  • Improved: The routing context menu was too small to tap easily. It's now a bit larger.
  • New: Blue dot compass can now be enabled/disabled.

August 4, 2016 - 2.15.3

  • Added: Diagnostics includes zoom level.
  • Added: Support for reading per map maximum zoom values from the Editor.
  • Fixed: An issue involving an upcoming feature.
  • Improved: Default settings for an upcoming feature.
  • Improved: Routing advancement.
  • Improved: We're using the New Search Level Picker as the default floor selector.

June 29, 2016 - 2.15.2

  • Added: It's now possible to enable a compass arrow on user's the blue dot location. GPS coordinates are required for the compass arrow to work.
  • Fixed: Bluetooth hardware on some Samsung devices was causing a stack crash.

June 22, 2016 - 2.15.1

  • Added: getCampaignId(Intent i) in the CampaignBroadcastReciever.
  • Added: Language updates.
  • Fixed: Crashing when Beacon RSSIs were updated while Beacons were being sorted.
  • Fixed: GPS exclusion areas used on multiple maps weren't being calculated correctly.
  • Fixed: Location generation data wasn't being updated appropriately when switching between locations.
  • Fixed: Map rendering would intermittently stall.
  • Fixed: Placemarks without names weren't showing on the map.
  • Fixed: The default GPS accuracy was set to zero.

April 25, 2016 - 2.15.0

  • Added: New Location Sharing feature. Please see the Meridian Samples project in the SDK for example usage.
  • Added: New map level picker designed for large numbers of maps. Enable it with Meridian.getShared().setPickerStyle().
  • Fixed: The creation process for some maps was causing the app to crash.
  • Improved: General location generation and smoothing improvements.
  • Improved: Map rendering is done on demand, instead of continuously.
  • Improved: The default routing snap to route distance can be set with Meridian.getShared(),setRouteSnapDistance().
  • Improved: The maximum zoom level can be set globally with Meridian.getShared().setDefaultMaxMapZoom().
  • Improved: Transparent markers are ignored for collision.

January 28, 2016 - 2.14.6

  • Added: Email crash reporting to AppViewer's Samples app.
  • Added: Native library support for the armabi-v8a ABI for better CPU performance.
  • Added: New onLocationUpdated callback to MapFragment to improve location performance.
  • Fixed: BLE scans were blocking Wi-Fi on some shared Wi-Fi/Bluetooth antennae hardware.
  • Fixed: Blue dot occasionally vanished during map switching.
  • Fixed: Crash when switching maps while routing.
  • Fixed: On some LG devices running Android 4.x, BLE scans were causing the UI to stutter.
  • Fixed: Some location performance issues.
  • Improved: Beacon detection.
  • Improved: Better smoothing.
  • Improved: Device identifiers are more reliably unique.
  • Improved: Routing step distances update as a user changes location.
  • Updated: Now using Android API 23 style permissions. Older manifest permission still work.

November 20, 2015 - 2.14.5

  • Added: User location can now be simulated for development builds. See Simulating Location in the README.
  • Fixed: A crash caused by some listeners unexpectedly being null.
  • Fixed: A native crash when removing Markers in a specific order.
  • Fixed: Markers that were added to the map and then moved to the bottom of the weight priority were failing to render.
  • Fixed: Units per meter were being incorrectly calculated for some maps with a rare arrangement of GPS reference points.
  • Fixed: ZoomLevels were being calculated incorrectly with some screen densities.
  • Improved: Campaign reporting.

September 8, 2015 - 2.14.4

  • Added: Support for Alpha and Scale animations for Markers.
  • Added: Support for minimum and maximum visible zoom levels for Markers.
  • Fixed: Areas not being set on Placemarks.
  • Fixed: Crash caused by rapidly switching back and forth between maps while animations were active.

August 17, 2015 - 2.14.3

  • Added: MapInfo methods for converting between latitude/longitude and Meridian map coordinates.
  • Fixed: Various map-related crashes.
  • Improved: Proguard exceptions.
  • Fixed: Corrupted transparency issue when the same bitmap is used for multiple Markers.

July 27, 2015 - 2.14.2

  • Added: Markers have invalidate methods that will update Marker properties and bitmaps.
  • Added: Propagate Proguard rules.
  • Added: Support for manually setting the PlacemarkMarkers icon.
  • Added: Support for right-to-left languages, such as Hebrew and Arabic.
  • Fixed: Added Markers vanished when the map reloaded.
  • Fixed: Various map-related crashes.
  • Improved: Auto re-routing for an improved end-user experience.

July 1, 2015 - 2.14.1

  • Added: Example proguard rules in the MeridianSamples project.
  • Added: Report analytics to the Meridian Editor.
  • Added: Two new Map Markers properties--ScaleFixedToMap and RotationFixedToMap. Enables locking Markers to the scale and rotation of the map, as opposed to the screen.
  • Fixed: Marker weights to order both colliding and non-colliding Markers properly.
  • Improved: Moved all MapView and MapFragment listener callbacks to the main thread. (The Marker's getBitmap and all Transaction callbacks are on the GLThread. Make sure to return quickly and catch exceptions to avoid a native crash.)
  • Improved: Native layer memory.
  • Improved: Stability fixes for the MapView when setting keys not attached to a window.

June 16, 2015 - 2.14.0

  • Added: MapEventListener method for easier notification of map transforms changing.
  • Added: Transaction animation times are configurable, as well as callbacks for when Transactions are added to the map and their initial animation has completed. (In the Samples app, see CustomMarkerFragment for examples.)
  • Improved: Map Markers allow for Marker Transactions to be added, modified, or removed.
  • Improved: Marker objects can be weighted to adjust priority during collision.
  • Improved: Marker rendering performance.
  • Improved: Pausing and resuming on Android 5+ devices conserves battery more effectively.
  • New: Marker objects can toggle Collision.

May 28, 2015 - 2.13.12

  • Fixed: Crashing issue on Android 5+ devices.
  • Fixed: Exit campaigns firing when a proximity beacon was never seen.
  • Fixed: OpenGL generating excessive log spam.
  • Improved: Marker rendering performance.
  • MapView: Added support for setting background color.
  • MapView: Added frame time limiter to improve battery use.

April 13, 2015 - 2.13.11

  • Added: Snap to route and auto rerouting. These are disabled by default and must be enabled in the Meridian class.
  • Added: Support for hiding PlacemarkMarker names.
  • Fixed: Black screen when animating a MapView.
  • Fixed: Routing bug causing "Route not found" errors for devices set to Spanish
  • MapEventListener: Updated to show when a map is loaded and rendered. (see README)
  • onDirectionsStart: Added to MapDirectionsListener to show when directions have finished loading and are being displayed.
  • Updated: Moved initial configuration into a Meridian singleton. (see README)

March 17, 2015 - 2.13.10

  • Added: Support for Campaign Push through the Editor. (see README)
  • Added: Support for clearing a MapView by setting its MapKey to null.
  • Fixed: Placemarks not showing with more than 500 placemarks on a map.
  • Fixed: Prompt for bluetooth to be turned on when already enabled.
  • Fixed: MapOptions not being propagated correctly to the MapFragment.
  • Fixed: Crash caused by lack of network connectivity.
  • Fixed: Campaign reset delay bug.

February 24, 2015 - 2.13.9

  • Added: Support for directions arrows for devices set to a non-English language.
  • Fixed: Campaign notifications not triggering correctly.
  • Fixed: Crash when clearing the map in a MapView during onPause/onResume.
  • Fixed: Route vanishing after onPause/onResume when using MapView directly.

February 13, 2015 - 2.13.8

  • Fixed: Crash related to poor network connectivity.
  • Fixed: NullPointerException caused by a threading issue in MeridianLocationService.

February 10, 2015 - 2.13.7

  • Added: Cache timeout override properties to the Meridian class.
  • Added: Caching support for all web requests.
  • Added: Loading spinner to the MapFragment while the map is loading.
  • Added: New location issue reporting screen (hold down 2 fingers on any map)
  • Fixed: Dialogs on Samsung devices not canceling correctly.
  • Fixed: Map controls too small or misaligned.
  • Fixed: Related maps on placemarks not being followed when tapped.
  • MapItem: Removed in favor of explicit DirectionsSource and DirectionsDestination parameters.

January 12, 2015 - 2.13.6

  • Added: Ability to exclude specific placemark keys from SearchFragment results.
  • Added: More EditorKey static constructors.
  • Fixed: Crash when switching rapidly between maps.
  • Fixed: Directions using a single placemark as a source were not generating a route.
  • Fixed: Routes were not clearing appropriately on fragment resume.
  • Updated: Improved Samples app.
  • Updated: Reorganized listeners on MapView and MapFragment to make implementations simpler. (see README)