v6.0.0 (2020-11-23)

  • API BREAKS:

    • minimum supported xcode version changed to XCode 12.1

    • minimum supported deployment target increased to iOS 9

  • build process changed to XCFramework

  • increased Swift version to 5.3

  • added support for iOS 14 precise location prompt

  • fixed the bugs.

v4.8.9

v4.8.8

General - Added support for AFNetworking api 4 .

v4.8.6

v4.8.5

General - FIX Fixed Data Analytics Events.

v4.8.4

General - FIX Fixed the problem of navigation path .

v4.8.3

General - FIX Fixed Data Analytics.

v4.8.1

General - FIX pull the newest KML information

v4.6.0

General - analyticsEnabled is now disabled by default

Subscription

v4.3.1

General - compiled with Xcode 11.0/11.1 and Swift 5.1 - compiled with iOS 13 and iOS 13.1 , 13.2. - FIX Fixed the problem of dark mode . - FIX Fixed the problem of blue background . - updated the section about Location Service Authorization in the documentation to reflect changes in iOS 13.

v4.3.0

General - compiled with iOS 13 and iOS 13.1 - updated the section about Location Service Authorization in the documentation to reflect changes in iOS 13.

Subscription - Added convenience method(subscribeToEvent:updateBlock) for subscribing to BSSDKConnectionStateEvent

v4.1.0

General

  • compiled with Xcode 10.2 and Swift 5

Subscription

  • FIX load() of the BSSDKLoadableObjectReference will return the venue with matching identity.

v4.0.0

General

  • API-CHANGE Merged two frameworks (FavendoPositioning and FavendoNavigation) into FavendoBackspinCore for better usage and size optimization.

Navigation

  • Align with Android by using Dijkstra.

Subscription

  • FIX will not try to close the connection twice when unsubscribe to last subscription.

v3.12.9

v3.12.8

v3.12.7

v3.12.6

Subscription

  • FIX load() of the BSSDKLoadableObjectReference will return the venue with matching identity.

v3.12.5

v3.12.4

v3.12.3

Subscription

  • FIX Using ` BSSDKEventScopes.asset(with:)` and BSSDKEventScopes.user(with:) with empty string to subscribe will not crash.

  • FIX The timestamp in the BSSDKTrackingEvent will be correct.

Asset Tracking

  • FIX asynchronous load methods( loadAssetTracking…​Asynchonously…​) will now request the correct data from the server.

v3.12.2

Subscription

  • FIX after calling closeAllSubscriptions the update block will not be executed.

  • FIX subscribe to BSSDKEventScopes.all() now work.

  • FIX if there is a valid token, it will not be set to empty.

  • If there is no subscription, the connection to server will be closed.

v3.12.1

General

  • Using the BSSDKModelStore methods before the SDK being initialized will not crash.

  • Access the description of the BSGenericModelSQLite will return the same value as descriptionString.

Subscription

  • FIX setUser works now

v3.12.0

Subscriptions

  • API-CHANGE

    • the objectReference in the BSSDKTrackingEvent is renamed to trackable

    • the zones in the BSSDKTrackingEvent is renamed to intersectedVenues and the type is BSSDKLoadableObjectReference now

    • BSSDKLoadableObjectReference contains a convenience load method

  • FIX call the closeAllSubscriptions will not crash anymore

  • position in the BSSDKTrackingEvent now has the level number in the altitude

v3.11.0 - Like or Subscribe

General

  • API-CHANGE introduced the new subscription-methods to improve the usage of asset-tracking

    • the new APIs can be access in BackspinSDKController+Subscription.h

    • deprecated all asset tracking methods. The methods are still working, but it might be removed in the future.

v3.10.7 - Houston, we have an error code

General

  • return error code with 401 when auth key is wrong during initialisation.

v3.10.6 - Communique Area

Notifications

  • BSAppNotificationModel now also contains the venue-model next to the polygon that triggered a location-based notification

Asset Tracking

  • optimised performance/responsiveness for web-socket asset-positions via batch-processing

v3.10.5 - A Star spangled release

General

  • compiled with Xcode 10.0 beta 5 and Swift 4.2

Navigation

  • now the A-Star returns the shortest route

v3.10.4 - A-Star is born

Navigation

  • improved performance using hybrid A-Star

  • will now return a true empty route if no valid route could be found

  • FIX will now always end at the nearest reachable intersection of the target

v3.10.3 - Asset-Listener Vigilance

Positioning

  • FIX handling of updateFrequency if set to anything else than high

Asset-Tracking

  • websocket-listener blocks are not overwritten any more if startWatchingAsset…​ is called from different places

    • each block is saved and called until stopWatchingAsset…​ is called

v3.10.2 - Dawn of the Loading Dead-Lock

General

  • added clearSDK to clear/wipe all SDK data for all root-venues

  • added more concise delegate-method shouldPresentAlertWithTitleKey that uses the localization-key (kBSLocalizationLocationManager…​) instead of the pre-translated strings

  • deprecated custom backend-request methods as sendJsonObject, POSTJsonObject, use provided SDK functionality only

Positioning

  • FIX better concurrency-handling on high-load situations

Data

  • FIX data will not be cleared any more during content-update WITHOUT force-refresh

  • FIX data-updates (model-download) will not get stuck in a deadlock under certain circumstances

v3.10.0 - Fast and Furious: Data Lift

General

  • if the delegate shouldPresentLocationServicesPopup…​ is not implemented, no popup will be created

  • added default texts for popups

  • added checkLocationServicesAuthorization to trigger a check for authorization at any time

Data

  • blazing fast data-update for models downloaded from Backspin

Positioning

  • FIX crash of Sane Beacon Distance Filter in certain conditions

v3.9.2 - Graphic Response

General

  • includes fat dSYM files for proper bitcode iTunes-Connect support

  • FIX exposed convenience venue-location methods again for BSGenericModelSQLite venue-category

  • model-store has public API to clear tables (via BSSDKModelStore+ExpertMode.h or BackspinSDK.Private)

  • image-loading more responsive

    • if called on main-thread and a server-image is cached in NSURLCache, the call now returns synchronously

  • renamed requestAllRootModelTypesDownloadOrUpdateWith: to requestAllRootModelTypesDownloadOrUpdateWithLanguage: for better clarity

Positioning

  • FIX if 0 beacons are scanned the SDK does not crash any more

v3.9.0 - Venue-Location Awareness

General

  • dropped Xcode 9.0 support

  • lastGpsLocation changed from method to property in "Not Released" API

  • marked internal API of FavendoBackspinCore as deprecated to warn of accidental usage. It will be replaced.

  • FIX calling disableBackspinSDK will not crash the SDK no more

Positioning

  • added setting useBeaconsFromAllLevels so positioning is not limited to beacons of the current determined level

  • if a level-change is detected, the position is now published right away, regardless of the current publishing interval

    • especially important if adaptive positioning or the motion-sensor are enabled

  • FIX stopping monitoring now works reliable

Navigation

  • changed userInfo of BSSDKNavigationTask from AnyObject to Any

  • added possibleDestinationVenueLocations and targetedVenueLocation for convenience

  • FIX BSSDKNavigationTask completion-handler always returns a destination for valid routes

  • FIX the destination now always resembles one of the input-locations

v3.8.0 - Extended Convenience

General

  • API-CHANGE for better overview, moved extended server-setup API (custom URLs) to own module BackspinSDK.ExtendedServers:

    • access in Swift via import BackspinSDK.ExtendedServers

    • access in ObjC via #import <BackspinSDK/BackspinSDKController+ExtendedServers.h>

    • new module also includes deprecated ApiKey APIs setupBackspinWithApiKey

      • you may check for the Objective C Macro _BACKSPIN_EXTENDEDSERVERS_MODULE to achieve a conditional import for backward compatibility

  • added convenience method requestRootModelTypesDownloadOrUpdate: to create a BSBackendConnectionDownloadRestEndpoint internally with the given set of root-model-types.

  • added convenience method requestAllRootModelTypesDownloadOrUpdate: to download all available data.

Venues

  • added convenience accessors for venue-locations venueLocationCenterLocation and venueLocationCenterCoordinate

v3.7.3 - Segmentation Rights

General

  • support for multiple versions of Xcode/Swift, find the links in the SDK documentation

  • better support for segmented loading of model-types

    • one can now load the minimum for the SDK to work (beacons, levels, …​) and after that has completed, all other (venues, offers, …​)

    • see SDK FAQ for more details

  • bugfixes and stability improvements

  • fixed strip_backspin_slices.sh for stripping simulator slices (before app-store submission)

Positioning

  • improved initial SDK boot-time while creating all positioning-config-presets

  • if an app has no NSLocationAlwaysAndWhenInUseUsageDescription key yet, the SDK will not request AlwaysUsage on iOS 11

v3.7.2 - It’s a set-up

General

  • introduced new setup-methods to specify a server-url directly

    • deprecated all "API-key" setup-methods in favour of new streamlined interfaces.

    • existing "API-keys" can still be fed into all setup-methods

    • if an old "API-key" is used with a new setup-method that specifies a server-url, that server-url parameter overwrites any url defined in the "API-key"

  • FIX: too eager "updateness" of SDK, when sometimes update or modification-times where ignored.

    • bootup times might increase significantly after the initial setup and content-loading

  • FIX: for apps without Swift, the setting "Always embed Swift Standard Libraries" now works again without having to insert a stub Swift class in the app.

Navigation

  • FIX route-path-snapping now works again if the position-config-preset changed since the routing-task has started.

  • if a path-snapping is requested via performNavigationPathSnapping: it will be snapped to the route of an active navigation-task, if there is one.

v3.7.0 - iOS XI-tement

General

  • added Bitcode symbol map files (.bcsymbolmap) to ZIP for Bitcode Appstore support.

  • API-CHANGE: deprecated executeAppNotification and triggerAppNotificationActions, the SDK does not support execution of internal notification-actions any more.

  • API-CHANGE: deprecated BSAppNotificationModel.actions, the SDK does not support execution of internal notification-actions any more.

Positioning

  • iOS 11 adaption: added authorizationStatusToRequest to BackspinSDKController

  • FIX core-location-manager correctly initialised in main-thread.

  • beacon-ranging does not stop automatically any more, unless beacon-monitoring is used.

    • if only "WhenInUse" authorization is given, background-location is not started until at least 1 beacon is ranged

    • background-location mode is stopped automatically after 3 minutes if no beacons are ranged in that period

    • beacon-ranging will continue if the app comes back to foreground

  • removed watching of Bluetooth state, NSBluetoothPeripheralUsageDescription is not required for Appstore releases any more

Asset Tracking

  • zone-alert listener callbacks now contain only the current zone-alerts and not all latest

Navigation

  • BSSDKNavigationTask: to mark as the main task, the parameter startLocationIsCurrentPosition has been renamed to isMainActiveNavigationTask for better clarity.

    • see updateStartLocation(_:, isMainActiveNavigationTask:)

v3.6.0 - Crypto 2.0 for Industry 4.0

General

  • API-CHANGE: moved classes BSBackendConnectionDownloadRestEndpoint, BSBackendConnectionDownloadObjectOfInterest, BSSDKNavigationTask, BSSDKNavigationRouteStep, BSSDKNavigationTurnByTurnDirectionsModel from BackspinSDK to FavendoBackspinCore

    • the API is untouched, just the module changed. Included "forward-import-header" declarations to reduce impact

    • NOTE: for Favendo MapSDK versions older and including v1.5.2 the navigation-feature cannot be used internally, consider updating to the new compatible version.

  • refactored core to avoid Swift segmentation faults

  • added localization constants like kBSLocalization…​ in BackspinSDKDelegate.h

    • can be used in the datasource method localisedStringFor:

  • added shouldDisplayHeadingCalibrationPopupForCompass delegate method

  • started translating code-snippets in documentation to Swift (3)

  • fixed content-loading if multiple requests are fired in close temporal proximity

Positioning

  • added support for bluloc crypto v2 beacons

  • deprecated "cryptoBeacons" parameter for explicit UUID definition in positioning-API

    • use startIndoorPositioningWithBeaconUUID: and startMonitoringPositioningBeaconRegionWithUUID: from now on

  • support for mixed crypto-beacon environments with the same UUID

  • introduced useBackgroundGpsUpdates flag on BackspinSDKController to control the usage of location background mode

  • add NSBluetoothPeripheralUsageDescription to the apps Info.plist for the positioning to use the bluetooth-state

  • changed BSSDKPositioningRssiPositioningThreshold default value to -100 dB for all presets

v3.5.5 - Graph-ic Display

Navigation

  • solved issue where a navigation could suddenly end up connecting start and end directly after some time

  • resolved several issues with the navigation-graph

  • fixed issue with route-snapping during an active navigation that could lead to premature finishing a navigation-task

  • BSSDKNavigationTask.updatePossibleTargetLocations() now returns if setting the new targets was successful or not

Analytics

  • unsent queue now persisted to disc on each queued analytics event

v3.5.4 - The Resurrection of Danglin Stomp

Asset Tracking

  • FIX correct re-subscription of websockets

Navigation

  • if updated navigation-targets are on different levels, they are now correctly updated, regardless of their line-of-sight distance

    • via updatePossibleTargetLocations on BSSDKNavigationTask

v3.5.3 - Rise Again

Asset Tracking

  • FIX correct re-subscription of websockets after connection has been lost and re-established again

v3.5.2 - Status Update

General

  • added venueLocationPolygonArea category-implementation to BSGenericModelSQLite to calculate area of venue-locations

    • used as "priority" for clustering in the Favendo MapSDK

Asset Tracking

  • added callbacks to be informed about websocket state-changes

    • see websocketStatusUpdateBlock and BackspinSDKAssetTrackingWebsocketStatusBlock

  • fixed loading of zone-alarms and asset-positions

Navigation

  • FIX: updating navigation-targets with significant distance now cause immediate re-calculation

Positioning

  • Sensible-Distance filter more resilient against long position-drought periods

  • Smart-Location-Update-Radius filter more resilient against level-changes

v3.5.0 - MADE NAVIGATION PERFORM GREAT AGAIN

General

  • API-CHANGE added nullability specifiers to BSGenericModelSQLite, beware of Swift unwrapping

Navigation

  • supports barrier-free navigation again

  • significant performance improvement for initial graph-creation on large navigation graphs

  • further improved route-calculation performance

  • minor logic fixes for turn-by-turn calculation

  • added possibility to update the target-locations of a task after its creation

    • use updatePossibleTargetLocations on the BSSDKNavigationTask

Asset Tracking

  • websockets are restarted automatically if the app comes back to foreground

Analytics

  • deprecated analytics-functionality is now reduced to stub-implementations

    • see release v3.2.2, in BackspinSDKController+Deprecated.h

    • the API is still callable to avoid API-breaks, but it might be removed entirely in a future release

Profile

  • API-CHANGE moved BSSDKAccountProfile protocol-definitions to FavendoBackspinCore, inserted forward-import to avoid any API-breaks

  • API-CHANGE added nullability specifiers to profile-config protocols, beware of Swift unwrapping

v3.4.13 - Zoning out

Asset Tracking

  • fixed retrieval of linked zones in BSGenericSQLite models for asset-tracking models

  • websocket is updated/restarted automatically if the favendo user token is updated

Navigation

  • fix to support detailed neighbours in the navigation graph again

    • custom weights for elevators/stairs etc.

    • support to display level-change icons again in a map

v3.4.11 - Dijkstrastic Performance

Navigation

  • more performant navigation

  • do not calculate navigation-route on a task if one is calculating at the moment

v3.4.9 - SDK’s Log, Stardate 2017.145

General

  • included methods for easier file-logging and sharing of log-files

    • see BackspinSDK.Private BackspinSDKController.startFileLogging (BackspinSDKController+InternalDebug.h)

v3.4.7 - Huuuuge Beacon Amounts

Positioning

  • environments with huge amounts of beacons are now handled more performant in the SDKs beacon-processing

Navigation

  • fix for route optimisation

v3.4.5 - Main Threading

General

  • resolved issue where Swift could crash due to mismatched ObjC type casting with BSGenericModelSQLite

Positioning

  • fixed race-condition issue where .whenInUse could fire before .always location permission alert and the app would end up with .whenInUse

  • support for background bluetooth state change listening

  • location-updates are now published on the main-thread

v3.4.4 - Cryptic Persistence

Positioning

  • persisting beacon-crypto seed across app-starts for better background-notification support

Asset Tracking

  • added "name" property to assets (besides "externalId")

  • moved processing of asset-tracking data (including websockets) to background queue

Navigation

  • fixed crash that could occur on reaching a navigation destination

  • solved issue where in rare cases the first or last navigation-step could have a distance of DBL_MAX metres

v3.4.3 - Background Processing

Positioning

  • made sure that position-calculations are performed on a background-thread

v3.4.2 - Navigation Update Direction

General

  • FIX: content-updates are now performed only if the rootscope-timestamp really expired

Navigation

  • creation of navigation-graph now moved to background-queue for better responsiveness with more than 1000 waypoints in a graph.

Positioning

  • the movement-direction is now preserved (during path-snapping or obstacle-checking it could have been thrown away)

v3.4.1 - Naïve Directíon

General

  • compiled with Xcode 8.3.2 and Swift 3.1.1

  • added synchronouslyRequestImageAtRelativeServerRestPath:

  • added delegate-method dataDownloadFailed: to be informed if there are errors during Backspin content fetching

Positioning

v3.4.0 - Survivial of the Adaptest

General

  • level-models are not returned any more via availableIndoorLevelsForNavigation if no level-plan is active

Positioning

  • improved version of motion/walking-detector

  • added "Adaptive Positioning" to gradually get more stable position-updates if one is standing

  • added BSSDKPositioningAccuracySettingAdaptive preset for easier usage of adaptive positioning

  • added source-documentation for BSSDKPositioningActivateMotionDetectionFilter about changed runtime position-settings

  • FIX: lazy request of iOS Location Services authorization now works

  • the enabled pre-set is now persisted across app-starts

Navigation

  • the snapped position now updates immediately if the route changes during route-path-snapping

Profile

  • fixed visibility of constants kBSProfileConfigFieldFreeTextValues and kBSProfileConfigFieldFreeTextValues

v3.3.1 - Rangeextension

General

  • API-CHANGE: removed deprecated methods/properties:

    • removed deprecated enum-values "kBSSDKXXXUpdateFrequency" (deprecated since v1.1)

    • removed deprecated legacy monitoring/ranging API from SDK v1.0 (deprecated since v1.1)

    • removed deprecated positioningUseGridPathSnapping setting from SDK v1.0 (deprecated since v1.1)

Positioning

  • API-CHANGE changed positioningUpdatePublishInterval from NSInteger to NSTimeInterval (double)

  • moved method-definitions to own header-file BackspinSDKController+Positioning.h

  • positioningUseMotionDetectionFilter will now performs a strong smoothing instead of stopping position updates entirely

  • added methods like startMonitoringBackspinPositioningBeacons to start positioning based on UUIDs in the modelstore instead of explicit definition

  • corrected documentation for best-accuracy preset for .rssiSmoothingHistorySize to 5

  • fixed issue where positioning/beacon-ranging would sometimes stop after some minutes

Asset Tracking

  • assets are now saved with correct asset-id string

  • modelstore cache is cleared on asset updates

v3.3.0 - Extrackvaganza

General

  • SWIFT UPDATE: Compiled with Xcode 8.3 and Swift 3.1!

  • added NSString specifier to array in BackspinSDKControllerDatasource rootVenueDownloadExclusionProperties

  • added levelPlanImageForLevelModel and levelTilesFileUrlForLevelModel to BackspinSDKControllerDatasource in order to provide local in-app resources for levelplans

  • moved delegate and datasource to own header-file (BackspinSDKDelegate.h)

Asset Tracking

  • complete implementation of asset-tracking, including websockets for positions and zone-alerts

  • background-pushes via websockets if beacons are ranged (iOS "Location" "background mode)

  • renamed assetZoneAlarmZones to assetZoneAlertZones in BSModelAssetTrackingZoneAlert category

  • API-CHANGE updateAssetTrackingAssetPositionsForIds now requires a non-null list of asset-ids

v3.2.2 - Externally Tracked

General

  • API-CHANGE removed rootVenueSelection parameter from setupBackspinWithoutRootVenueSelectionWithBasicAuth

Analytics

  • deprecated analytics-events that are not created automatically internally. If further needed, create your own analytics-handlers and queue custom events via queueAnalyticsEventWithType

Asset Tracking

  • added loadAssetTrackingAssetsAsynchonouslyByExternalIds and getAssetByExternalId for retrieval via external id

v3.2.1 - Analyse That!

General

  • added setupBackspinWithoutRootVenueSelectionWithBasicAuth to initialise the SDK without a rootvenue/root-scope.

Analytics

  • API-CHANGE analyticsEnabled is now enabled by default

  • if no rootvenue/rootscope is selected, the rootscope field in the analytics-events will not be sent

  • FIX added respondsToEventType to BSSDKAnalyticsTypeHandler protocol as required method

Notifications

  • output of beacon/venue-zone that was responsible for triggering the notification

Navigation

  • improved turn-by-turn calculation

v3.2.0 - Dat Asset

General

  • added public API setup method to switch between PROD/LIVE and UAT server with just using a basic auth key

  • moved extended API-key methods to BackspinSDKController+ExtendedServers.h for Backspin accounts that are not on UAT or PROD

  • moved model-serialisation explicitly to background-queue to prevent freezing the UI during content-updates on older devices

Notifications

  • API-CHANGE removed delegate-methods moduleNameForViewType and handleAppNotificationActionViewController

  • added displayDetailViewForModelWithModelType:andId: as replacement

  • deprecated protocols BSSDKModule and BSSDKModuleUI, they might be removed in a future release!

  • added link to original Backspin notification config in BSAppNotificationModel

Asset Tracking

  • API-CHANGE removed (de)activateAssetTrackingZoneAlarm(WithId)

  • added position property to category BSModelAssetTrackingZoneAlert

  • added API for continuous watching asset positions and zone alerts

Positioning

  • added configuration settings EvolvingWeightedAverageLocationHistorySize, RssiSmoothingHistorySize, and SensibleRssiFactor

Navigation

  • moved BSSDKNavigationRouteDirection to BSSDKNavigationTurnByTurnDirectionsModel.h

  • API-CHANGE changed turnByTurnRouteDirection from NSInteger to BSSDKNavigationRouteDirection

  • added BSSDKNavigationRouteDirectionDestination direction type

  • FIX: performNavigationPathSnapping: now preserves meta-data like accuracy, timestamp, course, bearing from input-location

  • added activateRouteOptimization flag to BackspinSDKController for navigation paths

v3.1.2 - Tracking Progress

General

  • cleanup of public API headers of BackspinSDKController

  • added API for asset-tracking data retrieval

Navigation

  • added method performNavigationPathSnapping: to snap an (external) position to the navigation path

Positioning

  • added public API to access info about ranged beacons.

  • FIX: support for crypto-beacons without beacon-monitoring

v3.1.1 - Rolling in the Seed

General

  • added support for levelplan tiles in BSSDKLevelPlanModel

Notifications

  • BSAppNotificationModel now contains an execution count

Positioning

  • rolling-id seed for bluloc crypto beacons is configurable

  • FIX: fixed warning for persisting positioning-config to disc

Navigation

  • more robust route-snapping during an active navigation

v3.1.0 - Background Beacons

General

  • Moved strip_backspin_slices.sh from inside BackspinSDK.framework to its parent directory.

  • extended background mode for positioning & notifications

  • added "appId" to all analytics events' payloads

  • added Nullability specifiers to BSSDKModelStore (beware of unwrapping in Swift 3!)

Positioning

  • changed "best accuracy" preset for circular lateration and smart location update radius

  • optimised version of circular lateration

  • changed default beacon ranging frequency from medium to high

Navigation

  • forced navigation-route snapping during active navigation mode (if startLocationIsCurrentPosition is set in BSSDKNavigationTask)

  • changed routeSteps parameter of BSSDKNavigationTaskCompletionHandler from AnyObject to BSSDKNavigationRouteStep

v3.0.1 - Minor Ascension

General

  • compiled with Xcode 8.1 (Swift 3.0.1)

  • added script to strip final frameworks from unnecessary (simulator) slices

  • included new iOS 10 logging

v3.0.0 - Swiftie Hard with a Vengeance

General

  • Compiled with Swift 3

Notifications

  • support for crypto-beacons without explicitly starting positioning/ranging

Positioning

  • fix for background mode support

  • workaround for iOS 10 and false positive beacon-region exit events

  • introduced "disablePositioning" flag if beacon proximity notifications are needed only and no positioning

v2.3.0 - Forward Unto Da New iOS

General

  • compiled with Swift 2.3 for Xcode 8 and iOS 10

  • forward interfaces from Core framework

  • introduced "Coupon" model-type

Profile

  • FIX: BackspinSDKController getLeafletModels now returning the correct set

  • introduced more global concept of "Bookmarks" rather than "Leaflet", for now just in naming

Positioning

  • beware of NSMotionUsageDescription in iOS 10 if positioning is used, see Backspin documentation!

  • FIX: complete information set of location_update analytics events

  • more performant beacon-lookup for huuuuuge installations

  • more responsive level-change

v2.1.3 - (213) Unread Notifications

General

  • resilient against server-updates with out-of-sync device clocks

  • removed dependency to CocoaLumberjack

Notifications

  • added support to limit the execution of notifications by a day-time-range

Positioning

  • do not trigger warning popups about Bluetooth if the app is not in foreground

  • correct usage of updateFrequencyIfAppGoesIntoBackground

  • support for majors with bluloc crypto (v1) beacons

v2.1.2 - Definition of Insanity

General

  • fixed Swift segmentation faults

Positioning

  • do not publish (the prior) location update (again) if no valid position beacon is ranged

v2.1.1 - Faulty Segment Correction

General

  • work on Swift segmentation fault errors

Positioning

  • fixes for Obstacle Checker

Notifications

  • improved performance

  • can now trigger parallel proximity notifications

User Account

  • completed API for profile-config (free-text field support)

v2.1.0 - O Profile, Where Art Thou

General

  • extended modelstore API to retrieve single models

  • added option "not" for modelstore to negate queries

  • more resilient against different timezones

  • bugfix: use root-venue exclusion types specified in datasource during initial request

Navigation

  • disabled navigation-path-snapping by default, according to documentation

  • fixed navigation-path-snapping crash

  • added obstacle check feature (do not jump through obstacles during positioning)

Positioning

  • added properties updateFrequencyIfAppGoesIntoBackground and updateFrequencyIfAppComesBackToForeground for better automatic handling of app-state-changes

  • more resilient against "wrong" beacon UUIDs, will auto-format them in the required "Apple-format"

  • fix with crypto-beacons in combination with proximity notifications

  • fixed race-condition during region-monitoring-start which leads to iOS warning (Error Domain=kCLErrorDomain Code=5 "(null)")

  • added delegate-methods to be informed about beacon-region enter and exit events

Notifications

  • solved an issue where notifications are fired sooner than their set expiration-duration

User Account

  • included profile account API to work with Backspin profile configs

  • extended API for likes and leaflets to explicitly retrieve data from server

v2.0.0 - Nonchatty Swift

General

  • see changelog v1.2.0 Beta 1 for changes since v1.1.x

  • added SDK API for (venue) likes and (offer) leaflet

  • added Bitcode support

Positioning

  • improved RSSI smoothing of new library

  • slight performance improvements for positioning

  • added public distance threshold parameter to adjust magnetic path-snapping (MagneticPathSnappingDistanceThreshold)

Navigation

  • sanitised navigation-route output and handling for navigation-tasks

  • improved turn-by-turn directions

v1.2.0 Beta 1 - Swiftly Beta

General

  • refactoring of internal frameworks to Swift

  • during setup, an Backspin account is created already, possibility to directly send the APNS token at the same time

  • API CHANGE: removed completion block for method registerDeviceWithApnsTokenAtServer: since the account is created during the first SDK setup already

  • all delegate methods are now called on the main thread

  • distinction between app-account and user-account. The app-account is the former known "user-account", now only used at server-side to save the APNS-token and language for pushes

  • introduction of user-account to handle an account-profile, leaflet, likes for future use, currently the user-account-id is still the same as the app-account-id

  • API CHANGE by default analytics are disabled now (analyticsEnabled in BackspinSDKController)

Positioning

  • improved handling of positioning accuracy presets

  • allows setting positioning configuration directly without accuracy preset

  • more resilient against state-changes, e.g. beacon monitoring will start delayed if Bluetooth is off and not result in an error

  • added public NSNotificationCenter keys to listen to global notifications as alternative to the delegate-methods for calculatedNewIndoorLocation: and rangedIndoorLocationBeacons

  • order of enum BSSDKPositioningConfiguration changed to group related settings

  • now publishing a location-update at each update interval. If motion-sensor or smart location radius are active, the prior location will be published again

Navigation

  • allows creation of navigation-tasks

  • setting of multiple entrances, the nearest one will targeted automatically

  • Barrier-free navigation option (also for individual tasks)

  • API CHANGE: removed BSSDKNavigationTargetProximityDistance from BSSDKPositioningConfiguration enum, use property navigationTargetProximityDistance directly.

  • API CHANGE: renamed/streamlined turn-by-turn directions enum values (BSSDKNavigationRouteDirection)

Data Handling

  • API CHANGE: data-download for "internal" and "external" data now has to be requested manually after setup via triggerContentUpdateFromServer or requestModelDownloadOrUpdateForRestEndpoint:

  • using Backspin REST API v2, downloading of all desired models with one call

  • added possibility to filter/reduce returned data by using BSBackendConnectionDownloadObjectOfInterest

  • better handling of root-scope-data

  • API CHANGE: removed method readBackspinJsonObjectFromEndpoint:success:failure: due to REST v2 API. Use ne method GETJsonObjectFromPath:success:failure: instead

  • API CHANGE: removed the "path" property from BSBackendConnectionDownloadRestEndpoint

  • included BSGenericModelSQLite categories for easier access of model properties

  • more robust fallback for slow/horrible internet connections

Analytics

  • added root-scope-id to events

  • added app-account-id and user-account-id to be able to track individual user movement

  • added enableAnalyticsPrivacyMode parameter so the account-ids are hashed for anonymisation (is set by default)

v1.1.1 - Swifty Three

General

  • Recompiled to work with Swift 2.2+ / Xcode 7.3

v1.1.0 - Nostalgia

General

  • Added support for AFNetworking 2.4, 2.5, and 2.6

Notifications

  • fix to fill customFields in notification-object

v1.1.0 - All aboard the future train

General

  • Changed BackspinSDKController to singleton, usage via sharedInstance

  • Dropped iOS 7 support

  • switched from static libraries to frameworks, introduced nested Swift code

  • requires external frameworks AFNetworking (3.0.x) and CocoaLumberjack (2.1.x)

  • added nullable specifiers for public API

  • support for extended API-keys which include custom server-configurations

  • added possibility to disable SDK

Positioning

  • integrated improved positioning framework with better level-detection

  • switched from geo-region-monitoring to beacon-region-monitoring for automatic positioning start

  • including whitelist iBeacon regions for monitoring outside of the SDK

  • added background location update support for iOS 9

  • fixed background-task expiration event for background location updates

  • changed frequency of BSSDKUpdateFrequencyUltraLow from 90 seconds to 60 seconds

  • introduced accuracy/power-setting presets for positioning with "BestAccuracy" and "PowerSaving" presets

  • increased performance of (first) beacon lookup

  • differentiation between moving and navigation beacons during positioning (only use "navigation" beacons)

  • added TX-Power positioning setting

  • added Beacon RSSI smoothing setting

  • added level-height positioning setting for barometer-verifications

  • fixed crashes if invalid beacon UUID is configured

  • fixed crashes in motion-detector

  • added callback to SDK-delegate to show alert-views for bluetooth or location-services-authorisation alerts instead of showing alert-views directly

Navigation

  • added (better) turn-by-turn direction calculation

  • removed device-heading from calculation of turn-by-turn directions for more stable results

  • API method calculateTurnByTurnDirectionForNavigationRoute:withHeadingCallback: replaced with calculateTurnByTurnDirectionsWithMapInformationForNavigationRoute:withHeadingCallback:, different input and return-types!

  • added (experimental) magnetic-path-snapping feature to stick to prior selected paths during navigation and path-snapping

  • added barrier-free navigation option

Data Handling

  • switched to Backspin REST Version 1

  • Added offline mode, persisting API-credentials

  • more resilient online-check in setupBackspinWithAPIKey method

  • content-type update check interval increased from 10 minutes to 30 minutes

  • Improved update-handling of SDK data with slow connections

  • functionality to download and change Backspin images

  • added API to download level-plan-models

  • public API for (readonly) model-store and generic model

  • server-communications API to get and post data to Backspin server

  • introduced root-scope-IDs

App Notifications

  • changed data type of "notificationKeyValueData" in BSAppNotificationsModel from NSDictionary to NSArray

  • included Offer-notifications, extended trigger-types with ENTER, EXIT, and DWELLTIME

  • included Beacon-Proximity Notifications with ENTER & EXIT for IMMEDIATE, NEAR, & FAR

  • BSSDKModule (protocol to display view-controllers via AppNotifications-module) does not require to be a singleton any more

Analytics

  • added analytics module including API to add/queue own analytics event types