iOS

Known issues
  • iOS 17.4 and 17.4.1 have a bug preventing barometer sensor to work with IndoorAtlas SDK <= 3.6.7. See https://forums.developer.apple.com/forums/thread/747797 for further details. The issue is fixed in iOS 17.5.1. Also IndoorAtlas SDK 3.6.9 includes a workaround for the issue.
Version 3.6.11 - August 2024
  • Fixed issue with low power beacon fusion after positioning restart
  • Bug fixes and performance improvements
Version 3.6.10 - June 2024
  • Bug fixes and performance improvements
Version 3.6.9 - May 2024
  • Add workaround for non-working barometer sensor due to iOS 17.4 bug, see https://forums.developer.apple.com/forums/thread/747797. Note that since iOS 17.4 “Motion & Fitness” permission is also required for barometer sensor. This permission (declared as NSMotionUsageDescription) is requested automatically along with location and BLE permissions, when starting location updates with IA SDK.
  • AR wayfinding improvements
  • Bug fixes and performance improvements
Version 3.6.7 - December 2023
  • New desiredPlatformAccuracy, platformActivityType properties added.
  • These properties can be used to control the desiredAccuracy and activityType of the underlying CoreLocation instance.
Version 3.6.6 - December 2023
  • Bug fixes and performance improvements
Version 3.6.5 - November 2023
  • Bug fixes and performance improvements
Version 3.6.4 - September 2023
  • Errors exposed for beacon scans
  • Bug fixes and performance improvements
Version 3.6.3 - June 2023
  • API for using 3rd party wayfinding routes
  • API for beacon scan callbacks
  • Bug fixes and performance improvements
Version 3.6.2 - March 2023
  • Apple silicon iOS simulator support
Version 3.6.0 - January 2023
  • Available as .xcframework
  • Improved cart positioning
  • Shorter distance to accurate location fix
  • Bug fixes and performance improvements
Version 3.5.5 - August 2022
  • Bug fixes and performance improvements
Version 3.5.4 - August 2022
  • iOS 11 is now required
  • Low power beacon fusion support
  • Discovery mode
  • Bug fixes and performance improvements
Version 3.4.12 - February 2022
  • Bug fixes and performance improvements
Version 3.4.11 - January 2022
  • Bug fixes and performance improvements
Version 3.4.9 - September 2021
  • AB wayfinding no longer needs current location to be inside a venue
  • Fixed indoor/outdoor support in enterprise SDK
  • Bug fixes and performance improvements
Version 3.4.8 - August 2021
  • Bug fixes and performance improvements
Version 3.4.7 - June 2021
  • Bug fixes and performance improvements
Version 3.4.6 - June 2021
  • Bug fixes and performance improvements
Version 3.4.5 - May 2021
  • Performance improvements
Version 3.4.4 - March 2021
  • Bug fixes
Version 3.4.3 - March 2021
  • Bug fixes and performance improvements
Version 3.4.2 - February 2021
  • Fix dynamic geofence removal not working
  • Bug fixes and performance improvements
Version 3.4.1 - February 2021
  • Fixes Eddystone beacon support
Version 3.4.0 - January 2021
  • AR support
  • Time based location event filtering
  • Enables requesting Wayfinding routes from point A to point B (previously only from current location to B)
Version 3.3.6 - November 2020
  • Indoor-outdoor detection improvements
  • Background performance improvements
  • General performance and stability improvements
Version 3.3.5 - September 2020
  • Improved backwards compatibility of the IAGeofence interface
  • Stability improvements
Version 3.3.4 - August 2020
  • Fixed bug where platform location permission would not be requested
Version 3.3.3 - August 2020
  • Data upload improvements
  • General performance and stability improvements
  • Restored TEMPORARILY_UNAVAILABLE and LIMITED status messages
Version 3.3.2 - August 2020
  • Fixed potential crash on geofence events (SDK 3.3+ only)
Version 3.3.1 - August 2020
  • Fixed crash on missing Bluetooth permission (SDK 3.3.0 only)
Version 3.3.0 GA - June 2020
  • Improved fusion with Apple Core location and Apple indoor positioning (contact sales)
  • New indoor-outdoor detection algorithm support (contact sales to enable)
  • Encrypted beacon support (contact sales)
  • Mainland China support: allow specifying the correct endpoint
  • TEMPORARILY_UNAVAILABLE and LIMITED status messages disabled in this release
Version 3.2.1 GA - March 2020
  • SDK 3.2 GA release
Version 3.2.1-beta4 - March 2020
  • Improved background performance
  • Fixed dynamic geofence enter/exit status after restarting positioning
  • Fixed positioning not working after API key was changed from the initial one
Version 3.2.1-beta3 - February 2020
  • Improved venue detection speed
Version 3.2.0-beta2 - January 2020
  • Indoor-lock enabled by default. Previous behavior can be restored by calling [IALocationManager lockIndoors:false] before requesting location updates
  • Added cart mode (kIALocationAccuracyBestForCart)
  • Added POI support (IAVenue.pois)
  • List of cloud geofences available as IAVenue.geofences
  • Improved low-power mode performance
  • Previously @Deprecated APIs now removed
  • Minimum deployment target is now iOS 9
Version 3.1.4 - February 2020
  • Fix cloud geofence region events sometimes having wrong enter/exit status
Version 3.1.3 - December 2019
  • Fix assertion failure when calling SDK from main thread, but via non-main dispatcher queue
Version 3.1.2 - November 2019
  • Fix floor lock with explicit locations
  • Bug fixes and general performance improvements
Version 3.1.1 - October 2019
  • Fixed crash with iOS 13 if missing NSBluetoothAlwaysUsageDescription key in Info.plist
  • Improved floor accuracy
  • Bug fixes and general performance improvements
Version 3.1.0 - October 2019
  • Minor bug fixes
  • Performance improvements in background use cases
Version 3.1.0-beta3 - September 2019
  • Fixed regression in battery usage (3.1.0-beta2)
Version 3.1.0-beta2 - September 2019
  • Bug fixes and general performance improvements
Version 3.1.0 beta - July 2019
  • New cloud geofence API
  • Improved offline data caching: the SDK needs to connect to the internet only on first use and approximately once a month, but not on each time positioning is started.
  • Full offline mode: run the SDK without ever connecting to the internet. Contact IndoorAtlas sales for more information on how to activate this.
  • Performance improvements regarding first fix, indoor-outdoor transitions, and background usage
Version 3.0.3 - June 2019
  • Fixed a bug that caused incorrect first fixes in floor 0 in certain cases
Version 3.0.2 - June 2019
  • Fixed erratic behaviour when phone is held upright (e.g. for taking a portrait photo)
  • Fixed crash when location services is off
  • Fixed potential crash related to background session data uploads
Version 3.0.1 - May 2019
  • Improved first fix time in certain cases
  • Fixed location jump with short sensor reading breaks (for example when app moves to background state without having background execution enabled)
  • Bug fixes and general performance improvements
Version 3.0.0 - May 2019
  • No changes from last beta
Version 3.0.0-beta3 - April 2019
  • Fix missing floor plan and venue objects in IALocation updates
Version 3.0.0-beta2 - April 2019
  • Fixed IALocationManager.distanceFilter
  • Improved session data upload reliability
  • Bug fixes and general performance improvements
Version 3.0.0-beta - March 2019
  • Fix restarting of positioning
  • Fix floor lock in low power mode
  • Bug fixes and general performance improvements
  • Deprecated calibration quality status
  • Improved service status reporting taking offline support into account
  • Main thread usage requirement of IALocationManager is now explicit in documentation, and asserted at runtime
Version 3.0.0-alpha - March 2019
  • First public version with full offline positioning capabilities
Version 2.9.4 - March 2019
  • Fix missing floor in locations
  • Fix a rare issue causing possible missing region events
Version 2.9.4-beta - February 2019
  • Fixed service status messages
Version 2.9.3 - February 2019
  • Fix a bug in setLocation that caused issues with floor & indoor locks.
  • Fix a bug causing incorrect region events.
  • Fix a bug in session data upload.
  • Fix a bug that caused occasional long first fix times.
  • Fix a bug related to floor & indoor locks
  • Fix a threading bug which caused SDK to crash.
Version 2.9.2 - January 11, 2019
  • Bug fix to issue where region entered event was sometimes missing after start-stop-start positioning sequence
Version 2.9.1 - December 2018
  • Debug data upload bug fix.
Version 2.9.0 - December 2018
  • General Availability release of SDK version 2.9.0
  • Includes bug fixes for 2.9.0-beta release.
Version 2.9.0-beta - October 2018
  • Floor plan changes can now happen offline
  • API is forward compatible with, 3.0, the first full-offline SDK
  • Full venue meta data is available through the SDK
  • Floor plan meta data does not need to be fetched asynchronously, but is already available in the relevant region events
  • New and better APIs for controlling indoor-outdoor detection and floor levels
  • General performance improvements while offline
Version 2.8.4 - October 2018
  • A bug fix release
Version 2.8.3 - September 2018
  • Fixed a bug related to position estimate’s timestamp reporting
Version 2.8.1 - June 2018
  • General Availability release of SDK version 2.8
  • Minor stability fixes
Version 2.8.0-beta - May 2018
  • Improved positioning performance during network breaks.
Version 2.7.2 - March 2018
  • Connection stability improvements
Version 2.7.1 - March 2018
  • Added support for IndoorAtlas Wayfinding
  • Fixes in explicit locations
Version 2.6.0 - November 2017
  • Battery-friendly indoor-outdoor detection
  • Improved robustness to bad network conditions
Version 2.5.3 - October 2017
  • Battery life optimizations
Version 2.5.2 - August 2017
  • Fixed plist information in the dynamic framework, preventing App Store submission
  • If you manually integrate the SDK into your Xcode project, append the included script xcode/strip-invalid-architectures.sh from the SDK package into your Xcode project as the last build phase. Mark this build phase to be ran only during install
Version 2.5.1 - August 2017
  • Fixed bug that caused crash on devices with OS lower than iOS10 when using low-power mode
  • Changed some ‘nullable’ attributes to ‘nonnull’ in public headers
Version 2.5.0-beta - June 2017
  • Added low-power position mode
  • Added geofence feature
  • Changed CoreLocation accuracy to kCLLocationAccuracyBest
Version 2.4.2 - May 2017
  • Added human readable name to IARegion
  • Supports iOS 8.0 and greater
Version 2.4.1 - April 2017
  • Includes all features of 2.4.0-alpha
  • Improved device movement detection
  • Added gyro calibration. Improves location accuracy with devices that have gyro bias
  • Reduced SDK size by disabling unused logging code
Version 2.4.0-alpha - March 2017
  • Added 3D orientation (attitude) API which uses location information to reliably give orientation related to true north. Currently orientation has some jumpiness, but this will be improved on server side.
  • Panorama example for 3D orientation
  • Minor bug fixes
Version 2.3.1 - February 2017
  • Includes all features of 2.3.0-alpha
  • Changed name of floorCertainty in 2.3.0-alpha to IAFloor property certainty
  • NSLocationWhenInUseUsageDescription application plist key support added Add that key to your plist to receive platform location updates. NSLocationAlwaysUsageDescription permission still works also, but In Usage description offers the same positioning performance and is less intrusive
  • Added extraInfo dictionary to IALocationManager which will be used to deliver positioning related information. Currently it contains Trace ID which can accessed with key defined in kIATraceId. Trace ID is used to identify a point in time during the SDK lifecycle
  • Fixed changing API key on run time Known issues:
  • Setting floorplan initializes positioning session to the given floor. Floor (plan) may change during positioning. With SDK v2.2.x floor plan setting was permanent.
  • Setting your location with Venue ID (also called Location ID on website) has no effect. Setting Venue ID is not yet supported on server.
  • If bluetooth is turned off, an alert: “Turn On Bluetooth to Allow to Connect to accessories.” will be shown. It is possible to suppress this alert by setting app plist key IANoCoreBluetoothPowerAlert If you suppress the pop up, remember to instruct users to turn on bluetooth for better positioning performance.
Version 2.3.0-alpha - December 2016
  • Supports next generation positioning algorithm
  • Supports BLE beacons in positioning for faster first fix and increased accuracy
  • New IALocation property floorCertainty exposes vertical certainty in multi-level buildings
  • Event for entering/exiting a venue is triggered as didEnterRegion / didExitRegion
  • Event for entering/exiting a floor plan is now triggered much more precisely
  • HTTP proxy support. Proxy settings will be picked up from iOS settings. To use proxy with basic authentication, following keys must be set in application’s plist ‘IAProxyUsername’ and ‘IAProxyPassword’. SDK can’t read authentication information from iOS settings.
  • Bug fixes and stability improvements Known issues: The accuracy of enter/exit venue event is currently being improved on the server side Note: Add CoreBluetooth.framework to you project
Version 2.2.3 - October 2016
  • Reduced SDK library size
  • Less sensitive for false-positive movement when standing still
  • Setting same API key again does not anymore reset IALocationManager
  • SDK robustness improvements and bug fixes
Version 2.2.1 - August 2016
  • Improved SDK robustness in bad networking conditions.
  • Fixed “Positioning setup required” error when location updates is stopped and immediately restarted. Known issues: Setting explicit location causes the next outputted location to always be same as set explicit location, even if explicit location has large horizontal accuracy value. Setting API key and API secret is required only when IALocationManager shared instance is used first time. Setting API key and API secret again resets IALocationManager internally, so it is adviced not to set API key and secret during positioning session.
Version 2.2.0-beta - June 2016
  • Early Access Beta release
  • Added distance filter. Default value for distance filter is 0.7 meters, but also shorter distances are supported
  • SDK delivers location estimates even when network is temporary lost. See more from developer guide.
  • Improved client-side algorithms
  • Does calibration when IALocationManager instance is created and when application comes to foreground
Version 2.1.3 - May 2016
  • Fixed a bug in setting explicit location with CLLocation which caused ‘unrecognized selector sent to instance’ error in iOS 7.x
  • Removed beta label
Version 2.1.1-beta - April 2016
  • Status indicator is reset between positioning sessions
  • Updated communication library

Known issues: Location updates does not always recover from high network packet loss situation. Calling stopUpdatingLocation and startUpdatingLocation is required to recover.

Version 2.1.0-alpha - March 2016
  • Improved client-side algorithms
  • API supports setting venue (building with multiple floors) id and floor level. Server side support still experimental.
  • Changed IALocationManager into singleton. Only one instance is shared in application
  • Added calibration quality indicator in to API
  • Supports iOS 7.0 and greater
  • SDK examples use MKOverlayRenderer instead of deprecated MKOverlayView.
  • IAFloorPlan is serializable with NSCoding
  • Saves power when device is static
Version 2.0.2-beta - December 2015
  • Improved connected WiFi Access point recognition
  • Increased timeout for floor plan meta data fetching from 5 seconds to 30 seconds
  • Faster method for floor plan image fetching in resource manager: fetchFloorPlanImageWithUrl
  • Platform location improvements
  • Added possibility to disable IA SDK platform location reading with application plist key “IAPlatformLocationDisable”
Version 2.0.1-beta - November 2015
  • Added modules support to framework
  • CocoaPods distribution
Version 2.0.0-beta - November 2015
  • Initial v2.x release
  • Support for automatic floor plan detection, improved API, multiple floor spanning positioning, and other features.