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.3
Bug Fixes
- The SDK didn’t compile with Xcode 26.
3.0.2
Enhancements
- Added OIDC LinkedIn authentication provider
3.0.1
Documentation
- Updated
.xcframeworkdownload 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.base64encryption algorithm did not work. As a result, unsubscribes inDataServiceandDataNodealways failed. - The
AuthenticationMethodOrangeMobileNetworkmethod 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
AuthenticationMethodInternalwas not formatted correctly.
2.3.0
Enhancements
WebcomKeyconforms 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
WebcomWrapperinstance has the samedescriptionas its wrapped instance. Webcom.defaultConfigurationsandWebcom.configurations(from:withKey:)did not throw the expected exception in some circumstances.- The decoding of a
WebcomConfiguration.WebSocketConfigurationvalue was ignoring the default value of theprotocolproperty. - Canceling a subscription that uses a constraint could delete data from the cache. [#1227]
2.2.0
Enhancements
- Add
WebcomKey.dateproperty. DataService.node(for:)method processes.and..segments, so that the paths are normalized.- Add
DataNode.keyproperty and corresponding property inWebcomWrapper. - Add
DataNode.parent,DataNode.PromiseWrapper.parentandDataNode.CombineWrapper.parentproperties. - 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
valueproperty ofDatasyncEventinstances contained child nodes withnullvalues. These child nodes no longer appear. [#1190]
2.1.2
Bug Fixes
- The
AuthenticationDetails.downloadAvatar(session:queue:then:)method did not call thecompletionCallbackwhen no avatar URL was available. Added thenoAvatarURLcase inWebcomError.SDKCodeenumeration to handle this case.
2.1.1
Bug Fixes
- When using
DatasyncNode.runTransaction(...), theDatasyncTransaction.Operationreturned by a call tofunctionwas not stored in the cache until acknowledgment or reject by the back-end. [#712]
2.1.0
Enhancements
PromiseWrapperandCombineWrappersubtypes becomeEquatable,Hashableand/orCustomDebugStringConvertiblewhen their wrapped types are:AuthenticationDetails.PromiseWrapperandAuthenticationDetails.CombineWrapperbecomeEquatable.AuthenticationMethodInternal.PromiseWrapperandAuthenticationMethodInternal.CombineWrapperbecomeCustomDebugStringConvertible.AuthenticationService.PromiseWrapperandAuthenticationService.CombineWrapperbecomeEquatable.DataNode.PromiseWrapperandDataNode.CombineWrapperbecomeHashable(and thereforeEquatable).DataService.PromiseWrapperandDataService.CombineWrapperbecomeEquatable.DatasyncNode.PromiseWrapperandDatasyncNode.CombineWrapperbecomeHashable(and thereforeEquatable).DatasyncService.PromiseWrapperandDatasyncService.CombineWrapperbecomeEquatable.WebcomApplication.PromiseWrapperandWebcomApplication.CombineWrapperbecomeHashable(and thereforeEquatable).
DataNodepaths are normalized to remove consecutive slashes and trailing slashes.
Bug Fixes
- Make
WebcomDate.backEndCurrentDatework as expected when used: [#1122]- in the associated value of
DatasyncTransaction.Operation.set(_:), - in the
valueofDatasyncNode.set(_:at:queue:then:)orDatasyncNode.merge(with:at:queue:then:)method whentimeisDatasyncTime.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
completionCallbackof theDatasyncNode.decodedValue(...)method or theDataNode.decodedValue(...)method, thecauseof theWebcomErrorwas 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.
