Changelog for PubNub Swift SDK

7.2.0

April 16, 2024
Added
  • Adding PrivacyInfo.xcprivacy.
  • Moving retry logic away from EventEngine.
Modified
  • Removing SubscribeSessionFactory with SubscriptionConfiguration.
  • Making SubscriptionSession class an internal.

7.1.0

March 18, 2024
Fixed
  • Preventing disconnection when subscribing via PubNub to a channel that was already subscribed to.
  • Fixes for computing a hash value in CryptoModule.

7.0.0

February 21, 2024
Added
  • Adding the new Listeners API.
  • Enabling EventEngine by default.

6.3.0

January 22, 2024
Added
  • Introducing Subscribe & Presence EventEngine.

6.2.3

November 28, 2023
Fixed
  • Handle unencrypted message while getting it with CryptoModule configured.

6.2.2

October 30, 2023
Modified
  • Update license information.

6.2.1

October 23, 2023
Fixed
  • Align on namings across all supported platforms.

v6.2.0

October 16, 2023
Added
  • Add CryptorModule that allows configuring SDK to encrypt and decrypt messages.
Fixed
  • Improved security of crypto implementation by adding AES-CBC cryptor.

6.1.0

August 30, 2023
Added
  • To make client integration more flexible for different projects setup, the $PubNubAsStaticFramework flag has been added to PubNubSwift.podspec. With $PubNubAsStaticFramework = true in Podfile SDK will be integrated as a static library.

6.0.5

May 18, 2023
Fixed
  • Uppercasing of the excluded_devices field to match the format expected by the REST API.

6.0.4

March 16, 2023
Modified
  • Change the settings for subscribe URLSession and limit the number of concurrent connections per host.
  • Call presence leave using subscribe URLSession to avoid potential presence race of condition.

6.0.3

January 4, 2023
Fixed
  • Fix issue because of which listener wasn't deinit even when reference on it has been nullified.

6.0.2

December 12, 2022
Fixed
  • Fix memory leak within Subscription Session.
Modified
  • Use specific GitHub action for .pubnub.yml validation.

6.0.1

September 5, 2022
Fixed
  • Fix issue because of which Example project didn't built with missing swift reference error.
  • Fix issue because of which Carthage was unable to build caused by schemas without targets.

6.0.0

July 5, 2022
Added
  • VSP methods and models have been exposed via modules on the PubNub instance.
  • FlatJSONCodable replaces [String: JSONCodableScalar] inside the VSP models.
Modified
  • PubNub instances has been changed from a struct to a class.
  • HTTPSession has been made public for easier per-request overrides of the Network Session.

5.1.0

February 2, 2022
Added
  • Add affected channels and groups under affected resources list.

5.0.1

January 19, 2022
Fixed
  • Fix issue because of which access token not updated in subscription session.

5.0.0

January 12, 2022
Modified
  • BREAKING CHANGES: Disable automated uuid generation and make it mandatory to specify during PubNubConfiguration instance creation.

4.1.2

November 8, 2021
Fixed
  • Make name field optional for channel and UUID metadata.

4.1.1

November 5, 2021
Fixed
  • Fix issue because of which request with applied mutators not used.

4.1.0

September 16, 2021
Added
  • Add ability to parse permissions from token provided by servers.
  • Make it possible to add component identifiers for requests.
Fixed
  • Fix bufferTooSmall and make temporary buffers for files encryption / decryption adaptive in size to provided stream buffer size.
  • Don't perform HEX-encoding of Data with FCM token which should be used as-is.
Modified
  • Use token instead of authKey (if specified) for query auth.

v4.0.2

August 3, 2021
Fixed
  • Memory leaks with captured request in subscription loop.

v4.0.1

July 7, 2021
Fixed
  • Subscribe Factory will hash additional values when comparing sessions
  • Adding APNS2 Devices will correctly return the devices that were added.
  • Per request configuration changes will correct be applied to the outgoing request.

v4.0.0

June 8, 2021
Added
  • BREAKING CHANGE: Crypto by default initialized with randomizeIV set to true which will encrypt / decrypt data with publish / subscribe / history API calls using randomized initialization vector
Modified
  • Add new sdks section to .pubnub.yml with information about available artifacts and distribution variants

v3.1.3

May 28, 2021
Modified
  • Custom error messages (from functions) will be included inside PubNub Error Details
Fixed
  • Fix Coding issue when setting UUIDMetadata objects

v3.1.2

April 30, 2021
Fixed
  • Subscribe Message events will have the correct messageType flag

v3.1.1

March 12, 2021
Fixed
  • FileEvents will contain the file name stored with PubNub and not the local filename (if different)
Modified
  • PubNub model objects are now Hashable

v3.1.0

October 6, 2020
Added
  • CryptoStream and CryptoInputStream can be used to perform crypto operations on streams of data
  • File upload/download support
  • Added includeUUID and includeMessageType flags to History
Modified
  • History will now has a default limit of 100 for single-channel and 25 for multichannel requests
  • Removed depcreated platform version support to align with Xcode 12 warnings

v3.0.1

June 25, 2020
Fixed
  • Fixed crash when performing many requests simulataneously

v3.0.0

June 17, 2020
Added
  • Added Objects v2 API and removed Objects v1 API
Modified
  • Replace PubNub API response objects with primitives or prtocols
  • Replace Subscribe Event objects with primitives or prtocols
  • Subscribe Listener now has a batched event handler
  • Renamed several APIs to align naming across all APIs
  • PubNubConfiguration properites can all be set through default init
  • Reduced access control of objects that are not public facing
  • Request level configuration available for most PubNub APIs

v2.5.4

June 25, 2020
Fixed
  • Fixed crash when performing many requests simulataneously

v2.5.3

June 9, 2020
Modified
  • Payload and FCMTarget fields are now optional for PubNubPushMessage
Fixed
  • Fixed an issue where nested presence state could be published

v2.5.2

June 4, 2020
Fixed
  • Resolves possible memory leaks related to listeners
  • Responds with the appropriate error when a Signal payload is too large
  • Added PAM support to Channels for Channel-Group endpoint
  • Invalid JSON will attempt to be parsed for the next Timetoken, and if successful will no interrupt the current subscription loop

v2.5.1

May 7, 2020
Fixed
  • Add uuid and channel to the Message Action Event
  • Fixed typos inside log messages
Modified
  • AnyJSON dictionaries can now perform a rawValue subscript that will return the underlying Any object

v2.5.0

March 26, 2020
Modified
  • Message Subscribe Events and Message History will now return the decrypted Data blob in the event it was decrypted, but couldn't be stringified
  • Crypto will now accept the type of String.Encoding to be used when converting between Data and String
  • Object API fetch|create|update methods with generic response objects have been added
  • Object API fetch|create|update methods with protocol response objects have been added
  • Object types User|Space|Member|Membership can now convert the underlying type using transocde(into:)
Fixed
  • Corrected the access control level of MembershipIdentifiable properties
  • User/Space Subscription Update events wouldn't properly handle partial object updates

v2.4.2

March 12, 2020
Fixed
  • Make region optional during originTimetoken parsing and set to 0 by default

v2.4.1

January 24, 2020
Fixed
  • A reconnecting event will be emitted once subscription starts retrying

v2.4.0

January 17, 2020
Added
  • PAM Token Management System added to manage Object API auth tokens
Fixed
  • HereNow Presence will now work when only groups are being used

v2.3.3

January 7, 2020
Fixed
  • Enable ability to send auth token on Presence endpoints

v2.3.2

December 9, 2019
Fixed
  • Subscription requests will now properly cancel when updating existing subscription loop

v2.3.1

December 3, 2019
Fixed
  • Duplicate subscription will no longer start if a current subscription is connecting
  • Added missing APNS2 pubnub config field to publish payload object
  • Fixed Coding issue when a scalar value is used for APNS2 publish payload object
  • Subscription will no long attempt to automatically reconnect after an unexpected disconnet

v2.3.0

November 25, 2019
Added
  • Added convenience objects for creating push publish messages
  • List/Add/Remove/Remove-All of APNS2 push channels for devices
Fixed
  • Channel property on push responses is not public

v2.2.0

November 14, 2019
Modified
  • Timetoken was changed from an Int64 to UInt64 to avoid negative timetoken values
  • Removed PubNubRouter, and replaced with multiple service specific HTTPRouter implementations
  • Removed Endpoint type
  • Renamed Response to EndpointResponse
  • Removed HTTPHeader & HTTPHeader, and replaced with [String: String]
  • Renamed Session to HTTPSession and made it an internal type
  • Created RequestReplaceable and made Request an internal type

v2.1.2

November 12, 2019
Fixed
  • PubNub Info.plist is now included on Cocoapod and Carthage deployed builds

v2.1.1

November 6, 2019
Fixed
  • Encoding JSONCodableScalar values will now properly encode to a single value
  • Membership APIs no longer use hardcoded subscribe key

v2.1.0

November 1, 2019
Added
  • Added support for Message Action Subscription Listener
  • Fetch previously published Message Actions and Messages via History APIs
  • Fetch previously published Message Actions on a channel
  • Add/Remove Message Actions on previously published messages

v2.0.2

October 25, 2019
Fixed
  • Add/Update documentation for public classes, methods, and properties

v2.0.1

October 21, 2019
Fixed
  • Update the version inside the podspec file

v2.0.0

October 17, 2019
Fixed
  • Subscribe/Unsubscribe will now properly cancel/restart the subscribe loop when completely stoppping cycle
  • Fixed memory leak inside Hearthbeat response handler
  • Fixed memory leak inside SubscriptionSessionFactory
Modified
  • PNError enum has been replaced by PubNubError struct to allow for greater flexibility in error handling and recognition
  • AnyJSON as been replaced by the JSONCodable protocol for method parameters allowing any conforming object to be passed
  • Removed initialized and cancelled as ConnectionsStatus options
  • Response error events due to cancellations will now be suppresed by default by the SubscriptionListener. They can be toggled on using a the supressCancellationErrors property
Added
  • Added subscription event listener for subscribe/unsubscribe changes

v1.2.1

October 15, 2019
Modified
  • Made the subscription token a property on the listener for cleaner setup

v1.2.0

October 8, 2019
Modified
  • Removed development dependencies from being included in Swift Package imports
  • Added meta event listener covering all event types
Added
  • Support for Objects added
Fixed
  • Changed ConnectionStatus.isActive and ConnectionStatus.isConnected access control to public
  • Fixed typo in PubNub.Push method parameters
  • Add support for Global HereNow
  • Fixed HereNow stateless response decoding
  • Fixed HereNow single channel response decoding

v1.1.0

September 3, 2019
Added
  • Add support for Signal Subscription Listener
  • Add support for Signal publish API
Fixed
  • Fixed crash attempting to create URLSessionTasks from invalidated URLSession
  • Default Encryption/Decryption methodology now properly aligns with other SDKs
  • ? characters inside URL query parameters will now be properly url encoded
Modified
  • Exposed add(listener:) to be called by PubNub instance directly

v1.0.0

August 23, 2019
Added
  • Initial release of native Swift PubNub SDK
Last updated on