All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Dependancy updated Dependecy on Estimote Bluetooth Scanning library to match its version
1.0.8
. - updated to xcframeework
- Rebuilt with newest Xcode to support Swift 5.6
ProximityObserver
will not return error if devices assigned to provided tags don't have attachments (previously it was treated as an error).
- Rebuilt with newest Xcode to support Swift 5.2
- Dependecy on Estimote Bluetooth Scanning library to match its version
1.0.8
.
- Rebuilt with newest Xcode to support Swift 5.1.2
- Updated to Swift 5.1 (Xcode 11). If you're still on an earlier version of Swift or Xcode, use 1.4.1.
- We now include .swiftinterface files (new in Swift 5.1) with our framework, which gives it module stability. Together with the ABI stability introduced in Swift 5.0, this means that you should now be able to use Estimote Proximity SDK >= 1.5.0 with Swift > 5.1 without us having to update the binary.
- For CocoaPods users, bumped the minimum required version of the EstimoteBluetoothScanning dependency to 1.0.6, which fixes iOS 13 compatibility issues. If you're not using CocoaPods, you'll need to manually update your EstimoteBluetoothScanning.framework!
This version is marked as beta because it was built with Xcode 11 beta 7. We don't anticipate any stability problems, but decided to wait with the final 1.5.0 release until Xcode 11 also releases as stable.
- Updated to Swift 5.1 (Xcode 11). If you're still on an earlier version of Swift or Xcode, use 1.4.1.
- We now include .swiftinterface files (new in Swift 5.1) with our framework, which gives it module stability. Together with the ABI stability introduced in Swift 5.0, this means that you should now be able to use Estimote Proximity SDK >= 1.5.0 with Swift > 5.1 without us having to update the binary.
- Fixed telemetry reporting.
- Now
ProximityObserver
will return error (and thus will fail) if all tags have no devices assigned. If any tag will have at least one device assigned, then monitoring will be started.
- Fixed missing i386 and x86_64 .swiftmodule. Projects which include EstimoteProximitySDK should now build in a simulator.
- Updated to Swift 5. If you're still on an earlier version of Swift, use 1.2.0.
- Dependecy on Estimote Bluetooth Scanning library to match its version
1.0.0-alpha
.
- Support for Swift 4.2 and the new build system in Xcode 10.
- The SDK drops support for the arm7vs architecture.
ProximityObserverConfiguration
now supports enabling/disabling reporting telemetry to Cloud, requesting CL authorization, and setting logs level.
- Enforcing Core Location Services permissions — in order to report enter/exit events, your apps need either
WhenInUse
(to work when the app is active) orAlways
(to work in background as well) permission. - Proximity SDK now supports telemetry reporting to Estimote Cloud.
- Errors related to the SDK initialization, zone observation, and Location Services are more descriptive.
EPXProximityZoneContext
is not a protocol anymore, but a class (so you can use it nicely within your Swift apps).- Swift classes have no
EPX
prefixes. - Parameters and naming in
ProximityZone
'sinit
and event callbacks now follows a clearer convention, and is consistent with the Android version.
EPXDeviceAttachment
class.- DeskObservers sample apps - from now on please use app templates as a reference instead.
Warning: Breaking changes - new, tag based API!
- Protocol
EPXProximityZoneContext
, a bundle of device identifier, and assigned to it tag and list of attachments.
- Initializing
EPXProximityZone
withtag
andrange
(instead of previous attachment's key-value pair and range). EPXProximityZone
's callbacks returnEPXProximityZoneContext
-compliant objects (instead of previousEPXProximityDeviceAttachment
).
- previous attachment-based API is removed (not deprecated!), please read carefully this.
- Fixed
EPXTimerAnalyticsHeartbeatGenerator
crash (issue).
- Estimote Monitoring is supporting pagination. Previously you could fetch only up to 100 attachments.
- Local persistance for cloud attachments. Now the
EPXProximityObserver
will fetch data from the cloud on everystartObserving()
if the network is available. If not, it will use the locally persisted data. This way you can start scan without the internet access, provided that you have launched it at least once when network was available.
- Fixed a bug with ABI (binary-level) changes in Swift 4.1 mentioned in bug report.
- Private headers are no longer processed when building framework. This has a potential to resolve SourceKit issues in Swift example mentioned in bug report.
- Changed rules for post processing private headers when building framework to partially resolve SourceKit issues in Swift example mentioned in bug report.
- Fixed a bug where Proximity Zone's
onEnterAction
,onExitAction
&onChangeAction
wouldn't be invoked when the app was in the background.
- Estimote Secure Monitoring support.
- Lack attachments assigned to devices does not stop observing proximity zones.
- Case
NoAttachmentsMatchingZone
of enumEPXProximityObserverError
.
- Estimote Proximity SDK now uses attachments configured in Estimote Cloud. No more encoding JSONs in tags!
- Renamed
EPXProximityDeviceAttachment
toEPXDeviceAttachment
. EPXProximityZone
'sattachmentValue
is nownonnull
.
- Added
EPXProximityObserverConfiguration
- it allows configuring Proximity Observer. At the moment, it only contains log level, but will be extended in the future.
- Removed deprecated
EPXDeviceAttachment
'sjson
property. From now on, usepayload
.
- Added
.payload
property ofEPXProximityDeviceAttachment
which represents content of attachment defined in Estimote Cloud. This property replaces.json
.
- Deprecated
.json
property ofEPXProximityDeviceAttachment
- usepayload
instead.
- Fixed headerdoc
initWithDesiredMeanTriggerDistance
to explain nullability.
- Fixed
Cannot remove an observer <CBPeripheral>
crash on iOS 11. It could occur when multiple Estimote's SDKs were used in one app project.
- Added dependency on Estimote Bluetooth Scanning library.
- Fixed an issue where Estimote Cloud Analytics batches sending would fail (getting 400 error).
EPXProximityObserver
,EPXProximityZone
,EPXProximityRange
,EPXProximityDeviceAttachment
classes for beacon proximity detection & beacon identification.- Estimote Monitoring algorithm with motion detection for reliable beacon proximity detection experience.
- Built-in visit analytics sending. The collected data can be seen in Estimote Cloud.