Version 3.27.1 – March 21, 2025 #
Added
- Now the Mapview makes your phone vibrate when you enter a geofence and have geofence enter actions configured in your profile.
Version 3.27.0 – March 19, 2025 #
Changed
- Improvements in SDK security. As a result of these changes, Situm SDK will need to refresh its cached data after the app is updated with this SDK version.
Version 3.26.0 – March 03, 2025 #
Added
- Added new class SITUserHelperManager and autoManage: method which will automatically request the necessary permissions and will try to solve any potential issues related to permissions and sensors by providing feedback to the user through the UI. You can enable this feature like this:
SITUserHelperManager.sharedInstance().autoManage(true);
Version 3.25.1 – February 24, 2025 [STABLE] #
Added
- Added the device’s id in the MapViewer URL.
Changed
- Now SITMapView UI text size will adapt to the device’s text size set.
Version 3.25.0 – February 05, 2025 #
Added
- Add new parameter in SITMapViewConfiguration to change the viewer domain.
Version 3.24.1 – January 29, 2025 #
Fixed
- Corrected cartesianBearing for SITLocation provided when using external locations.
Version 3.24.0 – January 16, 2025 #
Changed
- Added mapViewDidClickARButton: callback method to SITMapViewDelegate.
Version 3.23.0 – January 13, 2025 #
Added
- Implemented methods toDictionary and fromDictionary in SITExternalLocation.
Version 3.22.0 – January 08, 2025 #
Added
- Added new addGeofenceDelegate:, removeGeofenceDelegate: and removeAllGeofenceDelegates: at SITLocationManager interface. This new APIs allows to listen to geofence events from different delegates.
Deprecated
- SITLocationManager.geofenceDelegate was deprecated. Instead, use the methods mentioned above.
Fixed
- Add additional safeguards to prevent a crash when downloading buildingInfo during a prefetch.
Version 3.21.1 – December 19, 2024 #
Fixed
- Fixed some internal crashes when barometer sensor is enabled.
Version 3.21.0 – November 27, 2024 [Stable] #
Added
- Added selectPoi: and setLanguage: methods to SITMapViewController.
- Added didClickExternalLink: callback method to SITMapViewDelegate.
- Now when a new external location is provided, the locations returned by the SDK have their cartesian bearing and cartesian coordinates populated. As a result navigation now works for external locations too.
- In previous versions, you could only use the SDK SITLocationRequest to configure positioning with external locations. Now, you can also use remote configuration.
Version 3.20.0 – November 21, 2024 #
Added
- Added support to Apple Silicon Mac emulators. Applications that import the SitumSDK can now be executed on Apple Silicon Mac emulators. Previously, this required using Rosetta. This is no longer needed.
Fixed
- Improved floor transitions to fix a bug that prevented the SDK from correctly converging to the appropriate floor when the user was near a floor-change node (only happened on very rare occassions).
Changed
- The minimum iOS supported version has been increased to iOS 12, as the market share of previous versions is very small. As of June 9th, 2024 the 91% of the iPhone users were on iOS 17 or iOS 16 (https://developer.apple.com/support/app-store/). With this change the latest unsupported device will still be iPhone 5C(2013) (https://en.wikipedia.org/wiki/IOS_version_history#iPhone).
- From now on, only XCFrameworks will be uploaded to Artifactory and no new frameworks will be added.
Version 3.19.0 – October 30, 2024 [Stable] #
Added
- New .setAccuracy() and .setBearing() methods to SITExternalLocation.
Changed
- The methods of SITLocationDelegate are now always called in the main thread.
Fixed
- Fixed problem that caused the Building selector to stop working after the first building was detected. This prevented positioning to work if you went out of a building and then came back indoor again.
- Error kSITLocationErrorBluetoothIsOff is now working on iOS 18. In this version of iOS the callbacks that notify Bluetooth errors stopped working so we changed how we check if Bluetooth is available. The method we now use does not render an immediate result, as it takes some seconds to detect this error.
- In iOS 18, when the app went to background there were some occasions were we notified incorrectly of the error kCLErrorDenied. This is now fixed and it doesn’t happen anymore.
Version 3.18.1 – October 14, 2024 #
Fixed
- Fixed a bug in the communication of errors from the SDK to the SITMapView. In a recent version we added state and errors management but there were some problems with the errors that are now fixed.
- We made improvements in CoreLocationManager configuration to allow Situm SDK to generate locations in background for longer periods. As always, remember that to allow Situm SDK to work in the background ‘location’ has to be included in the app Info.plist UIBackgroundModes as explained in Apple docs and in our docs.
- Fixed an error in detecting Out of Building when the position was converged. In this situation, even when no new BLE or GPS data was received, the SDK considered the position as valid and never generates an Out of Building.
Version 3.18.0 – September 26, 2024 #
Fixed
- Fixed a bug that occurred sometimes during the indoor repositioning process after receiving an ‘out of building’ or transitioning to outdoor.
Version 3.17.0 – September 24, 2024 #
Added
- Added new methods navigateToPoi: and navigateToPoi:accessibilityMode: in SITMapViewController that allow to start the navigation to a Poi in the MapViewer.
- Added basic error and state management to allow SITMapView to provide the user with visual information about when positioning is starting, working correctly, or if there has been a problem.
Changed
- SITMapViewController has changed from being a class to a protocol.
- The SITMapViewController returned by SITMapViewLoadCompletion now is NonNull. This is a breaking change and it might affect you.
Version 3.16.0 – September 18, 2024 #
Added
- Added new xcode log to warn you if WKAppBoundDomains haven’t been added to your app Info.plist and you use the MapView. You have to add WKAppBoundDomains to support offline functionality. To learn more about how to configure offline functionality read this.
Fixed
- Fixed communication with the MapView when WKAppBoundDomains are declared in your app’s Info.plist. To learn more about how to configure offline functionality read this.
- Fixed the method toDictionary in the class SITPOICategory. The iconUrl and the selectedIconUrl were swapped
Removed
- Removed useViewerNavigation from SITMapViewConfiguration. Now it can only be configured through the remoteIdentifier.
Version 3.15.4 – September 09, 2024 #
Changed
- Fixed crash that happened sometimes during positioning.
Version 3.15.3 – August 29, 2024 #
Changed
- Improved the communication in the MapView navigation events.
Version 3.15.2 – August 14, 2024 #
Changed
- Several optimizations in the management of beacon readings to improve SDK performance and memory usage.
Version 3.15.1 – August 08, 2024 #
Changed
- Performance was optimized for position calculation in buildings with multiple floor transition points.
Version 3.15.0 – July 23, 2024 #
Added
- Added fromDictionary() in ExternalNavigation.
Fixed
- Fixed some null exception thrown when building a SITPoi without a category.
Version 3.14.1 – July 08, 2024 #
Fixed
- Changed the way the usage of barometer was declared in accordance to iOS 17.4 guidelines (see below).
- Fixed a bug in SITLocationRequest.useBarometer. When useBarometer was disabled, the altimeter information was still being requested from the iPhone despite not being used to compute the user’s location. With this fix, this information is not even requested.
Please note! This is especially relevant because, starting from iOS 17.4, as per Apple requirements, accessing altimeter information requires the Device Motion Data Permission. Therefore if you don’t want to request Device Motion Data Permission from the user and you can afford a lower quality in floor changes, you may disable useBarometer in the LocationRequest.
Version 3.14.0 – July 04, 2024 #
Added
- Added a new method in the LocationRequest to configure the motion mode. When the motion mode is ByFootVisualOdometry, the SDK will utilize visual odometry from the camera, if available. The SDK does not access the camera internally, so to enable this motion mode, you must inject the readings using the ExternalSensorManager.
This method is intended for internal use, don’t use it as it may change in future releases.
Version 3.13.2 – June 26, 2024 [Stable] #
Fixed
- Fixed a bug in Global Mode, that caused location and BLE permission errors to not be send outside the SDK.
Version 3.13.1 – June 10, 2024 #
Changed
- Fixed a bug in the getter of enableOutdoorOptions in SITOutdoorLocationOptions. This bug caused the default value to be returned instead of the actual value.
- Fixed a bug in initWithBuildingId: constructor of SITLocationRequest that caused problems when merging this location request with the remote configuration.
Please note! From iOS 17.4, as per Apple requirements, the Device Motion Data Permission (NSMotionUsageDescription) has to be requested to access altimeter information (used to improve floor changes). We recommend using the description “We use your phone sensors (gyroscope, accelerometer and altimeter) to improve location quality”. For more information about permissions needed by Situm check here.
Version 3.13.0 – June 05, 2024 #
ℹ️ NOTE: This version adds support for the new navigation callbacks introduced in the Map Viewer 1.99.0 version.
Make sure you update to this new 3.13.0 version, otherwise the SITNavigationDelegate callbacks (didStartOnRoute, didFailWithError, didUpdateProgress, destinationReachedOnRoute, userOutsideRoute and didCancelOnRoute) won’t work at all.
In case you want to still use these callbacks in a previous version, contact us at support@situm.com.
Added
- New navigation type. When Map Viewer is present, you can use the navigation of the Map Viewer instead of the SDK navigation. This type of navigation improves routes, indications and performance.
Version 3.12.0 – May 10, 2024 #
Changed
- Removed dependency of NSProcessInfo.processInfo.systemUptime, which is considered as a Required Reason API of type System Boot Time APIs by Apple. This will reduce the friction when publishing apps that integrate Situm SDK to the Apple Store.
- Improved performance in position calculation.
Version 3.11.0 – April 25, 2024 #
Changed
- Now Situm SDK is distributed as an xcframework from Cocoapods.
Added
- Now all Situm SDK XCFrameworks are signed using Situm credentials.
- Added the privacy manifest to Cocoapods dependency and to xcframework.
Unfortunately as of April 25th, 2024 there appears to be to be a bug in App Store Connect that is impacting SDKs distributed as static frameworks that declare “Required Reasons” in Privacy Manifests. As a result of this bug you may receive a mail from Apple when you try to publish your app. In this mail, Apple warns you that there are three issues with your app of the type ITMS-91053: Missing API declaration. You can find more information and how to solve it here. This problem doesn’t affect the generation of the privacy report.
Version 3.10.0 – April 02, 2024 #
Added
- New constructor of SITDirectionsRequest where you can define a POI as the destination instead of a point.
- SITRoute has a new parameter poiTo that contains the destination POI. If you didn’t set a POI as destination it will be null.
Fixed
- Resolved problem that caused the SITRoute in the SITNavigationDelegate methods to be null.
Version 3.9.0 – April 02, 2024 #
Added
- We simplified the usage of the login. Now, if a user does not have a valid API Key, the system will automatically create one during the login process. Note that as a developer this change won’t affect your app since the preferred authentication method keeps being through API Key directly and not through usr/pass.
Version 3.8.5 – March 18, 2024 [Stable] #
Fixed
- Fixed a bug that caused a crash the first time a route/navigation was requested after the cache had expired (once every hour by default).
Version 3.8.4 – March 12, 2024 #
Fixed
- Fixed a bug of the SDK internal cache. When several identical network requests were made within a very short period of time, instead of retrieving the data from the cache, the SDK was sending these requests through the network.
Version 3.8.3 – March 11, 2024 #
Changed
- From this version of the SDK onwards, the developer does not need to inject location updates by hand. Now both navigation and location systems get connected automatically and every time a new location update is generated the navigation system updates its progress. Therefore, as a developer, you do not have to call SITNavigationManager#updateWithLocation: method anymore.
Fixed
- This version also fixes a bug that allowed to send multiple errors when location permission or BLE sensor are turned off. Now only the most important one is sent according to the correct situation.
Version 3.8.2 – February 23, 2024 #
Changed
- This version fixes a bug that caused that you wouldn’t receive geofence entry/exit events if you set the geofenceDelegate after requestingLocationUpdates. With this fix you can add the geofenceDelegate even if the positioning has already been started.
Fixed
- Fixed crash that happened when there was a null in any custom field (e.g. in POIs, geofences, etc.) as retrieved from Situm API.
Version 3.8.1 – February 21, 2024 #
Changed
- This version contains internal improvements that boost the performance of the location engine.
Version 3.8.0 – February 20, 2024 #
Added
- Now you may use the new options (includedTags and excludedTags) directly on the Map Viewer. If you only use the Map Viewer you can customize your routes with a new configuration class SITMapViewDirectionsRequest that allows to modify these options to alter the computation of routes.
Version 3.7.2 – February 16, 2024 #
Fixed
- This version of the SDK fixes a bug that caused some routes to cross non walkable areas.
Version 3.7.1 – February 09, 2024 #
This version contains a bug in navigation and shouldn’t be used
Improved
- Improved the performance of the location system by doing some expensive operations on the background.
Version 3.7.0 – January 30, 2024 #
Changed
- Included additional options to configure route directions. Now you can customize the DirectionsRequest with a list of strings or tags which the directions system will use to include or exclude parts of the walking area of your buildings. These options are available through the SITDirectionsRequest class on the properties includedTags and excludedTags. You can learn more about this topic on our cartography management section.
Version 3.6.1 -January 17, 2024
- Improved the performance of the communication API that retrieves the information of the POIs of a building. Now it runs much faster.
- Removed filtering POIs option. Previously you could filter POIs while fetching them. This option has been deleted and from now own you should filter results based on your own criteria on the result callback. Specifically the keys SITCustomFiltersKey and SITKeyValueFilterMode no longer work as options.
Version 3.6.0 -December 20,2023 #
This version contains a bug in navigation and shouldn’t be used
Changed
- Improvements in the routeSteps and indications returned when calculating a SITRoute from SITDirectionsManager.
- Now, when obtaining a route the values of the index and nextStepIndex of the SITRouteStep go from 1 to n+1 instead of going from 0 to n. The same happens with the originStepIndex and destinationStepIndex of SITIndication.
- Improved descriptions of some objects to provide more information.
- New indication action (kSITPassThrough) to highlight the presence of a security checkpoint along the corresponding route.
Fixed
- Fixed bugs in the toDictionary methods of SITPoint and SITRouteStep.
Version 3.5.0 -December 11,2023 #
Added
- This version of the sdk introduces a method that allows to retrieve the information of a single Point of Interest.
Version 3.4.0 -November 28,2023 #
Changed
- This version of the sdk allows the usage of the new Map Viewer component in conjunction with the old user/password authentication. The recommended default authentication is based on email/apikey though, old apps can still is different auth method while using new map components.
- Updated rtls version to 2.53.4. Improved the behavior of route adjustment when the RouteAdjustment.useRouteAdjustment parameter is activated. The position adjustment is now decoupled from the orientation adjustment. If the distance from the calculated pose to the route is less than RouteAdjustment.distanceThreshold, the position will always be projected onto the route. The orientation will only be forced to align with the route direction if the position is projected onto the route and the difference between the bearing and the route direction is less than RouteAdjustment.angleDifferenceThreshold.
Added
- Now the new Map Viewer component includes an additional parameter that can be established in order to remotely configure all map settings. For now, you need to contact Situm to obtain yours. This parameter is named remoteIdentifier and can be used on the class SITMapViewConfiguration.
Version 3.3.0 -November 06,2023 #
Added
- Added the properties categoryIdentifiers and categories to SITPOI. Now a POI can have several categories associated with it.
Changed
- Changed the default value of SITCommunicationManager.cacheMaxAge. Before it wast set to 24 hours (86400 seconds) now it is set to 1 hour(3600 seconds)
- Improved the time to obtain the first location after calling requestLocationUpdates from SITLocationManager.
- Deprecated the fields createdAt and updatedAt from SITPOI. From now on, they will be empty in the objects retrieved from SITComunicationManager.
- This release improves positioning performance when starting to follow a route. With this, the Map Viewer is able to adjust the location & orientation to the route smoothly. The routeAdjustement feature that was broken from release 3.2.0. You can learn how to configure how the position is adjusted to the route from here.
Version 3.2.3 -October 27,2023 #
Changed
- From iOS Version 3.2.3 and Android version 3.5.1 routes behave the same on both platforms.
Version 3.2.2 – October 19, 2023 [Stable] #
Added
- Support for Polish language.
Version 3.2.1 – October 18, 2023 #
Fixed
- Fixed a bug that caused the positioning system to not use the appropriate parameters (route adjustment) when using Remote Configuration.
Version 3.2.0 – October 11, 2023 #
Changed
- We are pleased to announce that we have drastically improved route calculation algorithm for significantly enhanced performance. No action required from integrators as all enhancements have been seamlessly implemented internally.
Version 3.1.0 – September 29, 2023 #
Added
- This version of the SDK adds a configuration so the positioning system gets help from the route the user is navigating. The adjustment can be in both distance and orientation. As always in order to configure this option you can either use hardcoded values on your LocationRequest variable (routeAdjustment) or change them through our Remote Configuration panel.
- Added method navigationManager:didStartOnRoute on SITNavigationDelegate protocol to notify the begining of a navigation
- Added method navigationManager:didCancelOnRoute on SITNavigationDelegate protocol to notify the cancellation of a navigation.
- Added support to have multiple listeners for navigation events in SITNavigationManager `addDelegate:` allows to pass a delegate to start receiving notifications about navigation events;`removeDelegate:` allows to remove a previously added delegate to stop receiving notifications about navigation events
Changed
- All methods of SITNavigationDelegate protocol have been made optional now.
- Now, if during a Navigation the user reach the destination, (navigationManager:destinationReachedOnRoute:) the navigation updates are removed. Previously navigation updates have to been removed by you.
Deprecated
- Deprecate `SITNavigationManager.delegate` in favour of the new methods `addDelegate` and `removeDelegate`.
Fixed
- Fixed a bug on the navigation when the user starts it from the SITMapView
Version 3.0.3 -September 21,2023 #
Changed
- Improved navigation performance in large buildings.
Version 3.0.2 -September 06,2023 #
Fixed
- This version fixed a bug that prevented the location system to detect the correct building when using custom beacon identifiers.
Version 3.0.0 – August 23,2023 #
Introducing the new Situm SDK 3.0.
We are thrilled to announce the release of Situm SDK 3.0, which implies a significant architectural change in our SDK. With this update, we have integrated the previous UI standalone solution Wayfinding library directly into the SDK. This integration aims to streamline the development process and provide a more cohesive and comprehensive solution.
Furthermore we have introduced a remarkable evolution and improvement upon the Wayfinding library with the addition of the MapView component, powered by the new Situm Map Viewer. We’ve been listening to our customers’ feedback, and we have incorporated a wide range of enhancements based on your valuable input. Checkout the Situm page for further details.
As this library includes significant changes, compatibility with previous versions has been broken. We understand that transitioning to a new library may require some adjustments. To facilitate a smooth migration process, we have prepared comprehensive documentation:
- Migration guide.
We are incredibly grateful for your continued support and trust in our library. Situm SDK 3.0 represents our commitment to empowering developers with the most advanced tools and ensuring a brighter future for your software development endeavors.
Thank you for being part of this exciting journey with us!
Added
- The new Situm SDK 3.0 introduces a new visual component, SITMapView to provide interactive maps within your application. The MapView allows you to show indoor maps of your buildings on your app! It is a fully interactive Android View with improved capabilities:
- Intuitive Guidance with Dynamic and Static Navigation.
- Advanced POI Display Based on Zoom Level and Density.
- “What’s Nearby” Exploration Made Easy with Category & Subcategory Filtering, and POI search.
- POI information visualization.
- Tailored User Experience with High Configurability.
- Out of the box support for raster floorplans, raster tiles and GeoJSON/IMDF floorplans.
- Multilingual Interface.
- This new version lays the foundation for future improvements, specifically enabling full 3D maps and even augmented reality capabilities.
- Introduced SITMapViewController, a class that acts as a controller for SITMapView and manages user interactions and map data.
Changed
- The minimun iOS supported version has being increaded to ios 11, as the market share of previous versions is very small. As of May 21st, 2023 the 94% of the iPhone users were on IOS 16 or IOS 15 (https://developer.apple.com/support/app-store/). With this change the latest unsupported device will be iPhone 5C(2013) (https://en.wikipedia.org/wiki/IOS_version_history).
Migration from SDK 2.X to SDK 3.X
In order to upgrade the Situm SDK for iOS from any version 2 to the upcoming version 3 you need to focus on the following steps:
- There is no need to include Bluetooth permission anymore, so you can delete it from the main .plist file. Neither Privacy – Bluetooth Always Usage Description nor Privacy – Bluetooth Peripheral Usage Description permissions are needed now.
- There is a new dependency that needs to be added, WebKit.framework. As a developer you can do this on the Link Binaries with Library section of your Build Phase setting panel of your application.
And that’s it. The rest of the steps are the same as before. SDK versions are basically compatible, which means that previous classes will continue to work but you should expect more features regarding maps.