v4.8.8

  • Added support for AFNetworking api 4 .

v4.8.6

v4.8.5

General

  • FIX Fixed Data Analytics Events.

v4.8.4

General

  • FIX Fixed Data Analytics.

v4.8.3

General

  • Font Level Switcher is now enabled to change the font of level switcher

    • FIX Fixed the problem of navigation path .

    v4.8.2

    General

    v4.8.1

    General

    • analyticsEnabled is now disabled by default

    • 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