Webcom iOS SDK Change Log
All notable changes to this SDK are documented in this file. This project adheres to Semantic Versioning. Publication dates comply with the ISO 8601 Standard.
3.0.2
Changes
- Added OIDC LinkedIn authentication provider
3.0.1
Enhancements
- Updated .xcframework download links in documentation
3.0.0
Enhancements
- Replaced Starscream lib with native websocket support
- Added filtering of push notifications if another recent one with same characteristics already exists
- Added automatic push notification or webhook resubscription upon FCM token update
- Added automatic unsubscription of push notification subscriptions on logout
- Upgraded internal Javascript SDK to V2 API
Changes
- Add new APIs to handle long term subscriptions (push notifications or webhook subscriptions)
- Added AsyncAwait version of all APIs (except subscription APIs)
- Update project organization (modes Combine and AsyncAwait APIs in core module, removed PromiseKit module)
Bug Fixes
- Fix wrong encoding of expirationDate parameter for push notification and webhook subscriptions
- Added uid in NotificationContexts to avoid an user to retreive subscriptions of another user (in case of a user logging in after another one with expired authentication)
Breaking
- Removed PromiseKit APIs
- Push notification usage needs authStorage/authStorageKey parameter to be set in WebcomConfiguration
2.3.1
Enhancements
- Add a log in
DataDervice.updateDeviceTokenInAllSubscriptions(...)
when there is no subscription to update. - Add a log in
DataDervice.unsubscribeFromAllThroughNotifications(...)
andDataService.unsubscribeFromAllThroughWebhook(...)
when there is nothing to unsubscribe.
Bug Fixes
- The
WebcomEncryptionAlgorithm.base64
encryption algorithm did not work. As a result, unsubscribes inDataService
andDataNode
always failed. - The
AuthenticationMethodOrangeMobileNetwork
method always used the default WaaaT platform, which prevented it from working properly outside of European mobile networks. - The log message when an invalid state occurs while authenticating using
AuthenticationMethodInternal
was not formatted correctly.
2.3.0
Enhancements
WebcomKey
conforms toCustomStringConvertible
.- Increase the default web socket timeout to save battery (170 seconds instead of 45 seconds). [#1217]
- Make subscription callbacks wait for web socket establishment to complete before being called. [#1152]
Bug Fixes
- A
WebcomWrapper
instance has the samedescription
as its wrapped instance. Webcom.defaultConfigurations
andWebcom.configurations(from:withKey:)
did not throw the expected exception in some circumstances.- The decoding of a
WebcomConfiguration.WebSocketConfiguration
value was ignoring the default value of theprotocol
property. - Canceling a subscription that uses a constraint could delete data from the cache. [#1227]
2.2.0
Enhancements
- Add
WebcomKey.date
property. DataService.node(for:)
method processes.
and..
segments, so that the paths are normalized.- Add
DataNode.key
property and corresponding property inWebcomWrapper
. - Add
DataNode.parent
,DataNode.PromiseWrapper.parent
andDataNode.CombineWrapper.parent
properties. - Add
DataNode.relativeNode(for:)
,DataNode.PromiseWrapper.relativeNode(for:)
andDataNode.CombineWrapper.relativeNode(for:)
methods, as well as the corresponding/
operators.
Changes
- Rename
WebcomValuable.keys()
toWebcomValuable.childrenKeys()
.
The old method is still available but it is deprecated. - Rename
DataNode.keys(session:queue:then:)
toDataNode.childrenKeys(session:queue:then:)
.
The old method is still available but it is deprecated. - Rename
DataNode.PromiseWrapper.keys(session:)
toDataNode.PromiseWrapper.childrenKeys(session:)
.
The old method is still available but it is deprecated. - Rename
DataNode.CombineWrapper.keys(session:)
toDataNode.PromiseWrapper.childrenKeys(session:)
.
The old method is still available but it is deprecated.
Bug Fixes
- In some circumstances, the
value
property ofDatasyncEvent
instances contained child nodes withnull
values. These child nodes no longer appear. [#1190]
2.1.2
Bug Fixes
- The
AuthenticationDetails.downloadAvatar(session:queue:then:)
method did not call thecompletionCallback
when no avatar URL was available. Added thenoAvatarURL
case inWebcomError.SDKCode
enumeration to handle this case.
2.1.1
Bug Fixes
- When using
DatasyncNode.runTransaction(...)
, theDatasyncTransaction.Operation
returned by a call tofunction
was not stored in the cache until acknowledgment or reject by the back-end. [#712]
2.1.0
Enhancements
PromiseWrapper
andCombineWrapper
subtypes becomeEquatable
,Hashable
and/orCustomDebugStringConvertible
when their wrapped types are:AuthenticationDetails.PromiseWrapper
andAuthenticationDetails.CombineWrapper
becomeEquatable
.AuthenticationMethodInternal.PromiseWrapper
andAuthenticationMethodInternal.CombineWrapper
becomeCustomDebugStringConvertible
.AuthenticationService.PromiseWrapper
andAuthenticationService.CombineWrapper
becomeEquatable
.DataNode.PromiseWrapper
andDataNode.CombineWrapper
becomeHashable
(and thereforeEquatable
).DataService.PromiseWrapper
andDataService.CombineWrapper
becomeEquatable
.DatasyncNode.PromiseWrapper
andDatasyncNode.CombineWrapper
becomeHashable
(and thereforeEquatable
).DatasyncService.PromiseWrapper
andDatasyncService.CombineWrapper
becomeEquatable
.WebcomApplication.PromiseWrapper
andWebcomApplication.CombineWrapper
becomeHashable
(and thereforeEquatable
).
DataNode
paths are normalized to remove consecutive slashes and trailing slashes.
Bug Fixes
- Make
WebcomDate.backEndCurrentDate
work as expected when used: [#1122]- in the associated value of
DatasyncTransaction.Operation.set(_:)
, - in the
value
ofDatasyncNode.set(_:at:queue:then:)
orDatasyncNode.merge(with:at:queue:then:)
method whentime
isDatasyncTime.nextDisconnection
.
- in the associated value of
- Make the
DatasyncNode.runTransaction(_:queue:then:)
method: [#1124]- notify subscriptions when the resulting value is acknowledged by the back-end,
- store this value in the cache and report it to the
completionCallback
.
2.0.1
Bug Fixes
- Fix a compilation error when using Xcode 13.
- In the
completionCallback
of theDatasyncNode.decodedValue(...)
method or theDataNode.decodedValue(...)
method, thecause
of theWebcomError
was incorrect in case of decoding error.
2.0.0
Breaking
- This release implements a completely new API, which makes full use of the Swift language.