## v5.8.0
*February 27, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Add support for `type` and `status` fields for all App Context entities: `channel`, `uuid`, `membership`, and `member`.<br/>• Add `If-Match` header support to set `Channel` and `UUID` metadata app context objects. |
## v5.7.1
*February 3, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue which caused a crash because of an attempt to access nullified request cancellation block. |
## v5.7.0
*November 18, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Add custom message type support for the following APIs: publish, signal, share file, subscribe and history. |
## v5.6.1
*July 8, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which wrong request timeout has been used.<br/>• Fix issue with `PNSubscribeCursorData` which should have an optional `region` to handle user timetoken in received real-time messages. |
## v5.6.0
*June 27, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Decoder to map server response directly to the data models.<br/>• Configurable request objects require less convenience methods to interact with PubNub REST API.<br/>• Network layer rewritten as module. |
## v5.5.0
*June 12, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Adjusting to FCM HTTP v1 API. |
## v5.4.1
*April 30, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Match `include` folder content to the `import` in source code. |
## v5.4.0
*April 16, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Adding PrivacyInfo.xcprivacy. |
## v5.3.0
*December 19, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Add the ability to set automatic request retry configuration in `PNConfiguration`. |
## v5.2.1
*October 30, 2023*
| Type | Changes |
|------|----------|
| **Modified** | • Update license information. |
## v5.2.0
*October 16, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Add a crypto module with a set of implemented cryptors. |
| **Modified** | • Mark `uuid` as deprecated configuration property.<br/>• Fix warnings after project settings update. |
## v5.1.3
*December 13, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Serialise access to previously created session configuration objects from different threads. |
## v5.1.2
*December 9, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which message de-duplication code leaked memory. |
## v5.1.1
*September 6, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which `PNFilesManager` leaked each time when PubNub client created. |
## v5.1.0
*March 11, 2022*
| Type | Changes |
|------|----------|
| **Added** | • Make it possible to use PubNub Objective-C SDK using SPM. |
## v5.0.0
*January 12, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • BREAKING CHANGES: Disable automated `uuid` generation and make it mandatory to specify during PNConfiguration instance creation. |
## v4.17.0
*September 22, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Add method which allow to set or parse auth token. |
## v4.16.2
*June 9, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • Add download error checks in Files API integration tests to have ability investigate random test failure with data download on Travis. |
| **Fixed** | • Fix issue because of which null-able completion block wasn't properly verified and caused application crash.<br/>• Fix compiler warnings on type mismatch. |
## v4.16.1
*March 16, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Replace `os_unfair_lock` with `pthread_mutex` to avoid cases when `os_unfair_lock_lock` called from same thread more than once. |
## v4.16.0
*March 9, 2021*
| Type | Changes |
|------|----------|
| **Added** | • BREAKING CHANGE: Add randomized initialization vector usage by default for data encryption / decryption in publish / subscribe / history API calls. |
## v4.15.11
*February 6, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Add `heartbeat` to `subscribe` REST API call when `managePresenceListManually` is set to YES. |
## v4.15.10
*February 6, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix `copyWithConfiguration:completion:` which sometime stuck because of long-poll subscribe. |
## v4.15.9
*February 4, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Make `PNBasePublishRequest` header publicly visible.<br/>• Fix issue because of which subscriber reset heartbeat timer while in manual presence management mode. |
## v4.15.8
*November 16, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add new parameters to `Here Now` builder-based API to get presence information for list of channels or channel groups. |
## v4.15.7
*October 3, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add `timetoken` from file information publish call into `PNSendFileStatus` object. |
## v4.15.6
*September 26, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which `PNPublishSequence` metrics data migration caused application crash.<br/>• Fix subscription loop issue caused by broken bytes array with null-byte in it. |
## v4.15.5
*September 18, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Increase default number of messages returned by History v3, when single channel passed, to 100 messages per single call. |
## v4.15.4
*September 10, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Update code to ensure that persistent and in-memory storage accessed in thread-safe way. |
| **Fixed** | • Fix issue because of which migrated data didn't placed at proper place. |
## v4.15.3
*August 13, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add `include_message_type` option to fetch messages and history with message actions APIs.<br/>• Add `include_uuid` option to fetch messages and history with message actions APIs. |
| **Modified** | • Replace content type, which is returned by server during upload url generation, using system capabilities to detect MIME type by file extension.<br/>• Split current Keychain helper to two separate storage options: in-memory and Keychain. Keychain will be used when possible and in-memory for cases when Keychain not available and macOS. |
| **Fixed** | • After Keychain reorganization publish sequence manager has been restructured to use dispatch queue instead of SpinLock. |
## v4.15.2
*August 1, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Add same set of query parameters to download URL as any regular operation to PubNub service.<br/>• Fix issue with files larger than 32 kilobytes. |
## v4.15.1
*July 28, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix default issues after migration to publish requests objects usage because of which `replicate` and `store` has been reset to `false`. |
## v4.15.0
*July 27, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add send file API support which allow encrypt (if configured) and upload file to `channel`.<br/>• Add download file API support which allow download file from `channel` and decrypt (if configured).<br/>• Add list files API support which allow retrieve information about files sent to `channel`.<br/>• Add delete file API support to permanently remove file from `channel`.<br/>• Add file message publish API which allow notify about new file upload completion (should be used to recover from internal publish error).<br/>• Add new subscribe events listener to handle new files events.<br/>• Add new methods to PNAES which allow to encrypt / decrypt file at local file system.<br/>• Add new option for PubNub client configuration and PNAES methods to use random initialization vector instead of hard-coded when files / data is encrypted / decrypted. |
## v4.14.2
*June 19, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Make device push tokens added to `excluded_devices` lowercase. |
## v4.14.1
*June 6, 2020*
| Type | Changes |
|------|----------|
| **Added** | • By default, all requests which is able to return multiple objects, will return their total count (corresponding `includeFields` flag is set). |
| **Modified** | • Renamed group of methods which is responsible for `channel` members management / audit. |
## v4.14.0
*May 29, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add simplified Objects API support with UUID and Channel metadata / membership management. |
| **Modified** | • Deprecate and replace old `PNObjectEventListener` protocol with new one `PNEventsListener`. |
## v4.13.2
*May 18, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Don't create lowercase string when FCM device registration token provided to PubNub notifications API. |
## v4.13.1
*March 26, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Remove Fabric components from `PubNub.podspec` because they have been removed from SDK with latest release. |
## v4.13.0
*March 9, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add additional functionality which allow to filter out received Objects (memberships, members, spaces or users) by specified criteria.<br/>• Add new parameters which allow specify criteria (list of field names with sort direction `:asc` / `:desc` for each) order in which objects appear in response.<br/>• Add scripts which is responsible for SDK release roll out from tag in private repository. |
| **Modified** | • Presence state should set / fetch fail w/o actual request to server when list of channels / groups and uuid is missing. |
| **Fixed** | • Fix issue because of which `connected` interface didn't called completion block when `managePresenceListManually` is set to `NO`.<br/>• Fix issue because of which `includeMetadata` and `includeMessageActions` flags has been swapped.<br/>• Fix issue because of which actual retry never happened in case if subscription failed because PAM reported that client with current `authKey` doesn't have access rights to channels / groups.<br/>• Fix issue which didn't reset subscribe time-token when `keepTimeTokenOnListChange` is set to `NO` and `tryCatchUpOnSubscriptionRestore` is set to `YES`.<br/>• Remove 'macOS' from supported platforms in iOS Framework targets and rely on command-line specified flags to build Framework with Catalyst support. |
## v4.12.0
*December 5, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Added support for new endpoint which allow register and use devices with APNS2.<br/>• Added new interfaces (builder-based API also has been modified) which allow pass device push token / identifier (not only NSData) using specific push service type.<br/>• Added class which simplify basic notifications composition for multiple platforms / providers at once. |
| **Modified** | • Exposed utility class which allow to manage data in Keychain (iOS). |
| **Fixed** | • Fixed non-JSON response handling from History v2 endpoints when storage add-on not enabled for used keys. |
## v4.11.1
*November 25, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Added proper Catalyst framework support with separate build target 'XCFramework (Catalyst)' which is bundled with binaries which allow it to be used for: device / simulator and macOS. |
| **Modified** | • Changed build scripts which now produce XCFrameworks with separate slices for device and simulator instead of 'fat' binaries created with 'lipo'. |
| **Fixed** | • Changed headers visibility in frameworks project from 'project' to 'public'. |
## v4.11.0
*October 8, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add Message Actions API support which allow to: add, remove and fetch previously added actions.<br/>• Add new method to simple interface and argument to builder pattern interface which allow to fetch previously added actions and message metadata.<br/>• Modify 'PNObjectEventListener' with new callback which can be used to track message actions addition / removal events. |
| **Modified** | • Enhance publish sequence manager performance by making save only if any change has been done. |
## v4.10.1
*August 30, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Add missing import of Objects API interface to frameworks umbrella header. |
## v4.10.0
*August 27, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add support for Space Objects API.<br/>• Add support for User Objects API.<br/>• Add support for Membership / Member Objects API.<br/>• Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'space' events by adding new callback implementation.<br/>• Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'user' events by adding new callback implementation.<br/>• Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'membership' events by adding new callback implementation. |
## v4.9.0
*August 8, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add support for signal API.<br/>• Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'signal' objects by adding new callback implementation. |
| **Modified** | • Disable pipelining for requests, because there is no guarantee, what responses will arrive in same order as they has been requested - this may lead to unexpected response in used API.<br/>• Remove deprecated 'stripMobilePayload' configuration option from SDK along with code, which used it. |
| **Fixed** | • Fixed crash which is caused by attempt to de-duplicate message which PubNub client wasn't able to decrypt with configured 'cipherKey'. |
## v4.8.11
*July 15, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add macOS support for iOS frameworks. |
## v4.8.10
*June 27, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix subscribe request timeout missing 'reconnect' event.<br/>• Fix empty heartbeat value set to minimum on configuration copy. |
| **Modified** | • Update outdated configuration object inline help documentation |
## v4.8.9
*June 17, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add ability to pass FCM token for channel add / remove and audition APNS API endpoints. |
| **Fixed** | • Fix crash caused by code, which performed OS version parsing using older API which provides localized string (include additional information in addition to version information). |
## v4.8.8
*May 16, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add value wrapping around heartbeat 'value'. |
| **Fixed** | • Fix universal Frameworks build script. |
| **Modified** | • Separate tests project from main workspace. |
## v4.8.7
*March 28, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Resolved project warnings, which caused issues with Carthage framework build. |
## v4.8.6
*March 26, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Changed builder API interface visibility for frameworks from project to public. |
## v4.8.5
*March 19, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Changed message count result object header file visibility for frameworks from project to public. |
| **Modified** | • Moved Keychain records update calls to secondary queue. |
## v4.8.4
*March 11, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Added ability to retrieve number of messages in specified channels using timetoken as reference date. |
| **Modified** | • Removed channel names sorting from utility class (because of which new API wasn't able to work properly). |
## v4.8.3
*November 13, 2018*
| Type | Changes |
|------|----------|
| **Added** | • Added ability to get / set presence state for multiple channel / groups (at once). |
## v4.8.2
*November 7, 2018*
| Type | Changes |
|------|----------|
| **Added** | • Added ability to set arbitrary query parameters during API call. |
## v4.8.1
*June 21, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Changed client's data storage on macOS from Keychain to file-based. |
## v4.8.0
*June 19, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • Changed presence API flow and added client configuration option to enable manual presence list management.<br/>• Fixed implicit 'self' retain in block warnings. |
## v4.7.8
*May 7, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • Added listeners collection access serialization on queue to prevent access to property during non-atomic store |
| **Modified** | • Silenced implicit self usage in blocks. |
## v4.7.7
*February 14, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed issue because of which channel(s) and/or group(s) wasn't able to maintain user's presence with heartbeat. |
| **Modified** | • Fixed log file attributes to prevent their backup locally or to iCloud. |
## v4.7.6
*February 1, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed issue because of which new 'connected' presence API wasn't able to 'disconnect' user. |
| **Modified** | • Fixed behavior during unsubscribe - connect event won't fire after user 'disconnected', because there is no new channels about which listeners should be notified. |
## v4.7.5
*December 16, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Added ability to change client's presence without actual subscription to channels/groups (based on heartbeat and presence leave API). |
| **Fixed** | • Fixed pre-compile macro usage to send metrics when code is running on device with pre-iOS 10 version.<br/>• Fixed race of conditions for logger. |
| **Modified** | • Removed Xcode warnings about partly API availability. |
## v4.7.4
*November 15, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added ability to completely disable PubNub's client logger with 'PUBNUB_DISABLE_LOGGER' build configuration macro. |
## v4.7.3
*October 31, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Added 'suppressLeaveEvents' parameter to PNConfiguration which allow to suppress presence leave API call on unsubscription. |
| **Fixed** | • Fixed issue because of which there was a chance to create second subscribe request while subscription loop has been restarted with new timetoken. |
## v4.7.2
*October 16, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Added new method to unsubscribe from all channels and groups with completion block. |
| **Fixed** | • Fixed issue because of which unsubscribe requests didn't terminated previous long-poll subscribe request. |
| **Modified** | • Removed 'receiver-is-weak' clang warning suppression since it was deprecated. |
## v4.7.1
*September 15, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed telemetry shared data access issues. |
## v4.7.0
*August 28, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Added 'delete message' functionality. |
| **Fixed** | • Fixed issue with wildcard subscription and presence events which treated as messages.<br/>• Fixed issue with copyWithConfiguration method which removed client itself from state change observers.<br/>• Fixed de-duplication messages cache size issue.<br/>• Fixed issue because of which requests metrics gathered only if 'metrics' log level has been enabled. |
| **Modified** | • Removed deprecated flag from 'stripMobilePayload' so it will only print out deprecation warning in console w/o actual warning in Xcode.<br/>• Adjusted telemetry cache clean up interval. |
## v4.6.3
*July 21, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed issue with subscription to channel group. |
## v4.6.2
*July 19, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added ability to gather service performance information.<br/>• Added new error category PNRequestURITooLongCategory to properly handle and report issues to callbacks and completion blocks. |
| **Fixed** | • Removed unsubscribe request cancellation by sequential call to subscribe API.<br/>• Reorganized code which is responsible for subscribe requests cancellation<br/>• Fixed issue with macOS Keychain access in multi-user environment when none authorized.<br/>• Fixed inline documentation. |
## v4.6.1
*April 26, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed dependency analysis warnings for Fabric integration via CocoaPods. |
## v4.6.0
*March 31, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Add support for presence deltas. |
## v4.5.15
*March 15, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Added ability to store last used UUID in persistent storage. |
| **Modified** | • Added 'pn-' prefix for client-provided unique user identifiers.<br/>• Added OSSpinLock and os_unfair_lock switch. |
| **Fixed** | • Changed pre-compile macro for URLSession metrics gathering delegate usage. |
## v4.5.14
*March 8, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed uuid and auth keys encoding in query string. |
## v4.5.13
*February 3, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Added TCP metrics output to PubNub logs (added corresponding logger level).<br/>• Deprecated 'stripMobilePayload' property with output into console if property still used. |
## v4.5.12
*January 1, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Changed default origin |
## v4.5.11
*December 16, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Reverted default origin back to pubsub.pubnub.com |
## v4.5.10
*December 16, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • Changed object which is stored in cache which is used for de-duplication. |
| **Modified** | • Changed default origin |
## v4.5.9
*November 26, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed cached message identifiers list clean up. |
## v4.5.8
*November 25, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Added new configuration property 'maximumMessagesCacheSize' which allow to enable (when non-zero value passed) messages de-duplication logic. |
## v4.5.7
*November 20, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Added 'APPLICATION_EXTENSION_API_ONLY' flag to PubNub.podspec and Framework targets. |
| **Fixed** | • Fixed issue because of which 'reverse' flag had same value as 'include timetokens'.<br/>• Removed PNClass and added manual service response parsers registration (in attempt to solve third-party classes initialization at run-time).<br/>• Added additional service response check and wrap (in case if still somehow non-dictionary reached data objects). |
## v4.5.6
*November 16, 2016*
| Type | Changes |
|------|----------|
| **Added** | • Added multi-channel history request API to API call builder interface.<br/>• Added ability to subscribe / unsubscribe to/from channels and/or groups with single API call. |
| **Modified** | • Added ability to receive message sender identifier.<br/>• Deprecated 'restoreSubscription' property.<br/>• Added verbose logs around subscription loop timetoken usage. |
## v4.5.5
*November 2, 2016*
| Type | Changes |
|------|----------|
| **Added** | • Added ability to specify for how long published message should be stored in channel's storage (added into API call builder interface). |
| **Fixed** | • Fixed 'instanceID' which is placed inside of PNConfiguration. |
## v4.5.4
*October 27, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Added application extension environment support (applicationExtensionSharedGroupIdentifier PNConfiguration property).<br/>• Added messages count threshold configuration property.<br/>• Added 'instanceid' query property.<br/>• Added 'requestid' query property.<br/>• Updated fastlane configuration to speed test stage up. |
| **Added** | • Added builder pattern for API calls.<br/>• Added 'fire' and 'replicate' options to publish API call builder. |
| **Fixed** | • Fixed issue with shared auto-updating user calendar. |
## v4.5.3
*September 26, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • added NS_SWIFT_NAME with Swift equivalent specified in it to all public API to prevent Swift function signature change between Swift releases. |
## v4.5.2
*September 13, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • added published message sequence number to publish API call (this information arrive as message envelope and used for issues debugging).<br/>• added automatic heartbeat interval using formula and heartbeat value for calculated value.<br/>• deprecated 'actualChannel' and 'subscribedChannel' in favor of 'channel' and 'subscription' (properties still available, but will be eventually will be completelly removed). |
| **Added** | • added logger method which will allow to use it from Swift.<br/>• added 'channel' and 'subscription' properties to represent channel from which event arrived and actual data stream name which is used by PubNub client for subscription. |
## v4.5.1
*September 2, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • Changed default logs directory which should be used for tvOS client. |
## v4.5.0
*August 31, 2016*
| Type | Changes |
|------|----------|
| **Added** | • added scheduled API calls completion before application suspension (for iOS only).<br/>• added Carthage support.<br/>• added ability to disable message stripping (removing data which has been added by client during publish with mobile payload) which is enabled by default. |
| **Modified** | • removed dependency to CocoaLumberjack.<br/>• by default Framework bundles will be build with bitcode enabled. |
## v4.4.1
*July 7, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed timeout issue which caused by recently added shared NSURLSessionConfiguration configuration. |
| **Modified** | • added tests to cover fixed issue |
## v4.4.0
*July 7, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • added ability provide limited customization of NSURLSessionConfiguration.<br/>• added bitcode support for frameworks. |
## v4.3.3
*May 17, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed podspec dependency version format compatibility with CocoaPods 0.39. |
## v4.3.2
*May 13, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed issue for case when client doesn't use encryption and message has been received w/o mobile payload to clean up.<br/>• original message (in case of decryption error) will be passed into associatedObject of PNStatus error instance. |
## v4.3.1
*May 12, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed issue with PNNumber on 32bit system, when passed NSNumber instance created from unix-timestamp multiplied on 10000000.<br/>• fixed message content decryption in case if it has been sent along with mobile push payload. |
| **Modified** | • mobile push payload removed from received message.<br/>• 'pn_other' key has been removed and original object will be returned in delegate callback (this field used with message encryption and/or mobile push payload). |
## v4.3.0
*March 5, 2016*
| Type | Changes |
|------|----------|
| **Added** | • added Pub/Sub V2 API support.<br/>• added message filtering basing on published message metadata.<br/>• added ability to publish message with additional metadata for filtering purposes.<br/>• added generics to collection properties and arguments. |
| **Modified** | • added null-ability annotations.<br/>• updated tests.<br/>• updated inline documentation formatting. |
| **Fixed** | • fixed occupancy value storage for state-change (it will be set if available).<br/>• fixed issue with presence here now request where 'nil' passed as channel / group.<br/>• fixed script responsible for module map update in built frameworks.<br/>• fixed 'Universal Static Framework (iOS)' to use correct platform.<br/>• added missing files to Mac Framework. |
## v4.2.7
*February 9, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • changed way how heartbeat state notification is set. Now it can be specified in heartbeatNotificationOptions bit field property using PNHeartbeatNotificationOptions options. |
## v4.2.6
*February 9, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • added new property to PNConfiguration class called notifyAboutFailedHeartbeatsOnly which allow to configure client to notify not only about failed heartbeat statuses but for success as well. |
## v4.2.5
*January 27, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • added private persistent storage which allow to keep crucial data safe on device. |
| **Added** | • added new target to build dynamic framework for tvOS. |
| **Fixed** | • fixed issue with time token precision verification in case if non-PubNub's time token value has been passe. |
## v4.2.4
*January 12, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed issue because of which client may not restore subscription on list of channels which has been left after previous unsubscription request. |
## v4.2.3
*December 20, 2015*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed unsubscription issue because of which time token didn't get reset if there is no more channels on which client may continue subscription.<br/>• fixed issue with -unsubscribeFromAll which may issue unwanted subscribe requests in case if method call followed by subscribe method call. |
## v4.2.2
*December 14, 2015*
| Type | Changes |
|------|----------|
| **Added** | • added ability to build static library based frameworks (universal as well).<br/>• added Fabric support. |
## v4.2.1
*December 10, 2015*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed client state cache issue because of which channel group state itself get updated even if state has been changed for one. |
## v4.2.0
*December 2, 2015*
| Type | Changes |
|------|----------|
| **Added** | • extended subscribe API with ability to specify arbitrarily time token to catch up from. |
| **Modified** | • added ability to specify time tokens not only as 17 digit, but time interval from NSDate acceptable too.<br/>• added stringified representation for category and operation fields.<br/>• removed client initialization code which affected PNLogger configuration. |
| **Fixed** | • fixed Mac OSX target and scripts for dynamic framework creation. |
## v4.1.4
*November 24, 2015*
| Type | Changes |
|------|----------|
| **Added** | • added watchOS deployment information to PubNub.podspec file. |
## v4.1.3
*November 20, 2015*
| Type | Changes |
|------|----------|
| **Fixed** | • adjusted Base64 decoding settings which will allow to decode encrypted messages from some clients which changed Base64 encoding algorithms. |
## v4.1.2
*November 16, 2015*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed listener 'disconnect' status handling after client stumbled on network issues and reported 'unexpected disconnect'.<br/>• fixed issue because of which string has been stored inside of serviceData for PNErrorStatus created from NSError. |
| **Modified** | • logger will print out current verbosity level information every time when it will be changed.<br/>• all components (except core components) will add information about component to log output in format <PubNub::{component}>.<br/>• changed 'build configuration' from Debug to Release for framework building targets.<br/>• updated demo projects to correctly handle disconnection event (which happen for unsubscribe operation not for subscribe). |
## v4.1.1
*October 22, 2015*
| Type | Changes |
|------|----------|
| **Modified** | • fixed memory issues with PNNetwork instance.<br/>• removed deprecated string encoding methods. |
## v4.1.0
*October 15, 2015*
| Type | Changes |
|------|----------|
| **Added** | • added ability to build dynamic frameworks for iOS 8.0+. |
| **Modified** | • version bump because of backward compatible changes in public interface. |
## v4.0.8
*October 14, 2015*
| Type | Changes |
|------|----------|
| **Modified** | • exposed heartbeat error to ‐client:didReceiveStatus: |
| **Fixed** | • fixed ping triggering logic after corner case with network issues |
## v4.0.7
*October 3, 2015*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed issue which prevented proper -retry execution. |
## v4.0.6
*October 1, 2015*
| Type | Changes |
|------|----------|
| **Modified** | • updated logger macro usage.<br/>• updated Podspec file organization.<br/>• downgraded deployment target in Podspec file from 8.0 to 7.0. |
## v4.0.5
*September 20, 2015*
| Type | Changes |
|------|----------|
| **Modified** | • suppressed designated initializer warnings.<br/>• added client information class.<br/>• added conditional device ID specification in request constructor.<br/>• added ObjC/Swift test for crypto issue. |
| **Fixed** | • fixed issue with messages decryption in history and real-time messaging API. |
## v4.0.4
*September 2, 2015*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed issue with missing presence event handling.<br/>• fixed subscriber parser issue because of which channel group name and actual channel changed their places in status object for presence event.<br/>• fixed non-multiplexing subscription issue. |
| **Modified** | • added additional presence events tests. |
## v4.0.3
*July 24, 2015*
| Type | Changes |
|------|----------|
| **Fixed** | • fixed and changed data types for few data objects (which caused crash in swift environment).<br/>• fixed size tests to handle updated packet size during tests.<br/>• Fixed Podfile. |
| **Modified** | • removed CocoaPods post-install script from Podfile.<br/>• added custom 'User-Agent' header field.<br/>• changed test environment check. |
## v4.0.2
*July 13, 2015*
| Type | Changes |
|------|----------|
| **Modified** | • replaced AFNetworking with native NSURLSession wrapper.<br/>• if empty array of channels passed to enable push notifications SDK will report error.<br/>• added 'associatedObject' field to PNErrorStatus (for now only for decryption error on live feed).<br/>• in case of decryption error only status object will arrive to listener (‐client:didReceiveMessage: won't be called). |
| **Fixed** | • fixed podspec to suppress warnings which appeared because private headers has been exposed to public.<br/>• fixed code which had warnings from clang.<br/>• fixed issues with composed message publish (with mobile push payloads).<br/>• fixed demo application which provided wrong logger configuration for log file size.<br/>• fixed issue with number publishing.<br/>• fixed logger levels manipulation.<br/>• fixed inability to publish mobile gateway payloads only. |
## v4.0.1
*June 30, 2015*
| Type | Changes |
|------|----------|
| **Modified** | • updated documentation hosted by CocoaPods. |
## v4.0.0
*June 30, 2015*
| Type | Changes |
|------|----------|
| **Modified** | • The new, refactored PN 4.0 for iOS is here. |
Added | - Add support for
type and status fields for all App Context entities: channel , uuid , membership , and member . - Add
If-Match header support to set Channel and UUID metadata app context objects.
|
Fixed | - Fix issue which caused a crash because of an attempt to access nullified request cancellation block.
|
Added | - Add custom message type support for the following APIs: publish, signal, share file, subscribe and history.
|
Fixed | - Fix issue because of which wrong request timeout has been used.
- Fix issue with
PNSubscribeCursorData which should have an optional region to handle user timetoken in received real-time messages.
|
Added | - Decoder to map server response directly to the data models.
- Configurable request objects require less convenience methods to interact with PubNub REST API.
- Network layer rewritten as module.
|
Added | - Adjusting to FCM HTTP v1 API.
|
Fixed | - Match
include folder content to the import in source code.
|
Added | - Adding PrivacyInfo.xcprivacy.
|
Added | - Add the ability to set automatic request retry configuration in
PNConfiguration .
|
Modified | - Update license information.
|
Added | - Add a crypto module with a set of implemented cryptors.
|
Modified | - Mark
uuid as deprecated configuration property. - Fix warnings after project settings update.
|
Fixed | - Serialise access to previously created session configuration objects from different threads.
|
Fixed | - Fix issue because of which message de-duplication code leaked memory.
|
Fixed | - Fix issue because of which
PNFilesManager leaked each time when PubNub client created.
|
Added | - Make it possible to use PubNub Objective-C SDK using SPM.
|
Modified | - BREAKING CHANGES: Disable automated
uuid generation and make it mandatory to specify during PNConfiguration instance creation.
|
Added | - Add method which allow to set or parse auth token.
|
Modified | - Add download error checks in Files API integration tests to have ability investigate random test failure with data download on Travis.
|
Fixed | - Fix issue because of which null-able completion block wasn't properly verified and caused application crash.
- Fix compiler warnings on type mismatch.
|
Fixed | - Replace
os_unfair_lock with pthread_mutex to avoid cases when os_unfair_lock_lock called from same thread more than once.
|
Added | - BREAKING CHANGE: Add randomized initialization vector usage by default for data encryption / decryption in publish / subscribe / history API calls.
|
Added | - Add
heartbeat to subscribe REST API call when managePresenceListManually is set to YES.
|
Fixed | - Fix
copyWithConfiguration:completion: which sometime stuck because of long-poll subscribe.
|
Fixed | - Make
PNBasePublishRequest header publicly visible. - Fix issue because of which subscriber reset heartbeat timer while in manual presence management mode.
|
Added | - Add new parameters to
Here Now builder-based API to get presence information for list of channels or channel groups.
|
Added | - Add
timetoken from file information publish call into PNSendFileStatus object.
|
Fixed | - Fix issue because of which
PNPublishSequence metrics data migration caused application crash. - Fix subscription loop issue caused by broken bytes array with null-byte in it.
|
Modified | - Increase default number of messages returned by History v3, when single channel passed, to 100 messages per single call.
|
Modified | - Update code to ensure that persistent and in-memory storage accessed in thread-safe way.
|
Fixed | - Fix issue because of which migrated data didn't placed at proper place.
|
Added | - Add
include_message_type option to fetch messages and history with message actions APIs. - Add
include_uuid option to fetch messages and history with message actions APIs.
|
Modified | - Replace content type, which is returned by server during upload url generation, using system capabilities to detect MIME type by file extension.
- Split current Keychain helper to two separate storage options: in-memory and Keychain. Keychain will be used when possible and in-memory for cases when Keychain not available and macOS.
|
Fixed | - After Keychain reorganization publish sequence manager has been restructured to use dispatch queue instead of SpinLock.
|
Fixed | - Add same set of query parameters to download URL as any regular operation to PubNub service.
- Fix issue with files larger than 32 kilobytes.
|
Fixed | - Fix default issues after migration to publish requests objects usage because of which
replicate and store has been reset to false .
|
Added | - Add send file API support which allow encrypt (if configured) and upload file to
channel . - Add download file API support which allow download file from
channel and decrypt (if configured). - Add list files API support which allow retrieve information about files sent to
channel . - Add delete file API support to permanently remove file from
channel . - Add file message publish API which allow notify about new file upload completion (should be used to recover from internal publish error).
- Add new subscribe events listener to handle new files events.
- Add new methods to PNAES which allow to encrypt / decrypt file at local file system.
- Add new option for PubNub client configuration and PNAES methods to use random initialization vector instead of hard-coded when files / data is encrypted / decrypted.
|
Fixed | - Make device push tokens added to
excluded_devices lowercase.
|
Added | - By default, all requests which is able to return multiple objects, will return their total count (corresponding
includeFields flag is set).
|
Modified | - Renamed group of methods which is responsible for
channel members management / audit.
|
Added | - Add simplified Objects API support with UUID and Channel metadata / membership management.
|
Modified | - Deprecate and replace old
PNObjectEventListener protocol with new one PNEventsListener .
|
Fixed | - Don't create lowercase string when FCM device registration token provided to PubNub notifications API.
|
Fixed | - Remove Fabric components from
PubNub.podspec because they have been removed from SDK with latest release.
|
Added | - Add additional functionality which allow to filter out received Objects (memberships, members, spaces or users) by specified criteria.
- Add new parameters which allow specify criteria (list of field names with sort direction
:asc / :desc for each) order in which objects appear in response. - Add scripts which is responsible for SDK release roll out from tag in private repository.
|
Modified | - Presence state should set / fetch fail w/o actual request to server when list of channels / groups and uuid is missing.
|
Fixed | - Fix issue because of which
connected interface didn't called completion block when managePresenceListManually is set to NO . - Fix issue because of which
includeMetadata and includeMessageActions flags has been swapped. - Fix issue because of which actual retry never happened in case if subscription failed because PAM reported that client with current
authKey doesn't have access rights to channels / groups. - Fix issue which didn't reset subscribe time-token when
keepTimeTokenOnListChange is set to NO and tryCatchUpOnSubscriptionRestore is set to YES . - Remove 'macOS' from supported platforms in iOS Framework targets and rely on command-line specified flags to build Framework with Catalyst support.
|
Added | - Added support for new endpoint which allow register and use devices with APNS2.
- Added new interfaces (builder-based API also has been modified) which allow pass device push token / identifier (not only NSData) using specific push service type.
- Added class which simplify basic notifications composition for multiple platforms / providers at once.
|
Modified | - Exposed utility class which allow to manage data in Keychain (iOS).
|
Fixed | - Fixed non-JSON response handling from History v2 endpoints when storage add-on not enabled for used keys.
|
Added | - Added proper Catalyst framework support with separate build target 'XCFramework (Catalyst)' which is bundled with binaries which allow it to be used for: device / simulator and macOS.
|
Modified | - Changed build scripts which now produce XCFrameworks with separate slices for device and simulator instead of 'fat' binaries created with 'lipo'.
|
Fixed | - Changed headers visibility in frameworks project from 'project' to 'public'.
|
Added | - Add Message Actions API support which allow to: add, remove and fetch previously added actions.
- Add new method to simple interface and argument to builder pattern interface which allow to fetch previously added actions and message metadata.
- Modify 'PNObjectEventListener' with new callback which can be used to track message actions addition / removal events.
|
Modified | - Enhance publish sequence manager performance by making save only if any change has been done.
|
Fixed | - Add missing import of Objects API interface to frameworks umbrella header.
|
Added | - Add support for Space Objects API.
- Add support for User Objects API.
- Add support for Membership / Member Objects API.
- Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'space' events by adding new callback implementation.
- Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'user' events by adding new callback implementation.
- Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'membership' events by adding new callback implementation.
|
Added | - Add support for signal API.
- Add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'signal' objects by adding new callback implementation.
|
Modified | - Disable pipelining for requests, because there is no guarantee, what responses will arrive in same order as they has been requested - this may lead to unexpected response in used API.
- Remove deprecated 'stripMobilePayload' configuration option from SDK along with code, which used it.
|
Fixed | - Fixed crash which is caused by attempt to de-duplicate message which PubNub client wasn't able to decrypt with configured 'cipherKey'.
|
Added | - Add macOS support for iOS frameworks.
|
Fixed | - Fix subscribe request timeout missing 'reconnect' event.
- Fix empty heartbeat value set to minimum on configuration copy.
|
Modified | - Update outdated configuration object inline help documentation
|
Added | - Add ability to pass FCM token for channel add / remove and audition APNS API endpoints.
|
Fixed | - Fix crash caused by code, which performed OS version parsing using older API which provides localized string (include additional information in addition to version information).
|
Added | - Add value wrapping around heartbeat 'value'.
|
Fixed | - Fix universal Frameworks build script.
|
Modified | - Separate tests project from main workspace.
|
Modified | - Resolved project warnings, which caused issues with Carthage framework build.
|
Fixed | - Changed builder API interface visibility for frameworks from project to public.
|
Fixed | - Changed message count result object header file visibility for frameworks from project to public.
|
Modified | - Moved Keychain records update calls to secondary queue.
|
Added | - Added ability to retrieve number of messages in specified channels using timetoken as reference date.
|
Modified | - Removed channel names sorting from utility class (because of which new API wasn't able to work properly).
|
Added | - Added ability to get / set presence state for multiple channel / groups (at once).
|
Added | - Added ability to set arbitrary query parameters during API call.
|
Modified | - Changed client's data storage on macOS from Keychain to file-based.
|
Modified | - Changed presence API flow and added client configuration option to enable manual presence list management.
- Fixed implicit 'self' retain in block warnings.
|
Fixed | - Added listeners collection access serialization on queue to prevent access to property during non-atomic store
|
Modified | - Silenced implicit self usage in blocks.
|
Fixed | - Fixed issue because of which channel(s) and/or group(s) wasn't able to maintain user's presence with heartbeat.
|
Modified | - Fixed log file attributes to prevent their backup locally or to iCloud.
|
Fixed | - Fixed issue because of which new 'connected' presence API wasn't able to 'disconnect' user.
|
Modified | - Fixed behavior during unsubscribe - connect event won't fire after user 'disconnected', because there is no new channels about which listeners should be notified.
|
Added | - Added ability to change client's presence without actual subscription to channels/groups (based on heartbeat and presence leave API).
|
Fixed | - Fixed pre-compile macro usage to send metrics when code is running on device with pre-iOS 10 version.
- Fixed race of conditions for logger.
|
Modified | - Removed Xcode warnings about partly API availability.
|
Modified | - Added ability to completely disable PubNub's client logger with 'PUBNUB_DISABLE_LOGGER' build configuration macro.
|
Added | - Added 'suppressLeaveEvents' parameter to PNConfiguration which allow to suppress presence leave API call on unsubscription.
|
Fixed | - Fixed issue because of which there was a chance to create second subscribe request while subscription loop has been restarted with new timetoken.
|
Added | - Added new method to unsubscribe from all channels and groups with completion block.
|
Fixed | - Fixed issue because of which unsubscribe requests didn't terminated previous long-poll subscribe request.
|
Modified | - Removed 'receiver-is-weak' clang warning suppression since it was deprecated.
|
Fixed | - Fixed telemetry shared data access issues.
|
Added | - Added 'delete message' functionality.
|
Fixed | - Fixed issue with wildcard subscription and presence events which treated as messages.
- Fixed issue with copyWithConfiguration method which removed client itself from state change observers.
- Fixed de-duplication messages cache size issue.
- Fixed issue because of which requests metrics gathered only if 'metrics' log level has been enabled.
|
Modified | - Removed deprecated flag from 'stripMobilePayload' so it will only print out deprecation warning in console w/o actual warning in Xcode.
- Adjusted telemetry cache clean up interval.
|
Fixed | - Fixed issue with subscription to channel group.
|
Modified | - Added ability to gather service performance information.
- Added new error category PNRequestURITooLongCategory to properly handle and report issues to callbacks and completion blocks.
|
Fixed | - Removed unsubscribe request cancellation by sequential call to subscribe API.
- Reorganized code which is responsible for subscribe requests cancellation
- Fixed issue with macOS Keychain access in multi-user environment when none authorized.
- Fixed inline documentation.
|
Fixed | - Fixed dependency analysis warnings for Fabric integration via CocoaPods.
|
Added | - Add support for presence deltas.
|
Added | - Added ability to store last used UUID in persistent storage.
|
Modified | - Added 'pn-' prefix for client-provided unique user identifiers.
- Added OSSpinLock and os_unfair_lock switch.
|
Fixed | - Changed pre-compile macro for URLSession metrics gathering delegate usage.
|
Fixed | - Fixed uuid and auth keys encoding in query string.
|
Modified | - Added TCP metrics output to PubNub logs (added corresponding logger level).
- Deprecated 'stripMobilePayload' property with output into console if property still used.
|
Modified | - Reverted default origin back to pubsub.pubnub.com
|
Fixed | - Changed object which is stored in cache which is used for de-duplication.
|
Modified | |
Fixed | - Fixed cached message identifiers list clean up.
|
Modified | - Added new configuration property 'maximumMessagesCacheSize' which allow to enable (when non-zero value passed) messages de-duplication logic.
|
Modified | - Added 'APPLICATION_EXTENSION_API_ONLY' flag to PubNub.podspec and Framework targets.
|
Fixed | - Fixed issue because of which 'reverse' flag had same value as 'include timetokens'.
- Removed PNClass and added manual service response parsers registration (in attempt to solve third-party classes initialization at run-time).
- Added additional service response check and wrap (in case if still somehow non-dictionary reached data objects).
|
Added | - Added multi-channel history request API to API call builder interface.
- Added ability to subscribe / unsubscribe to/from channels and/or groups with single API call.
|
Modified | - Added ability to receive message sender identifier.
- Deprecated 'restoreSubscription' property.
- Added verbose logs around subscription loop timetoken usage.
|
Added | - Added ability to specify for how long published message should be stored in channel's storage (added into API call builder interface).
|
Fixed | - Fixed 'instanceID' which is placed inside of PNConfiguration.
|
Modified | - Added application extension environment support (applicationExtensionSharedGroupIdentifier PNConfiguration property).
- Added messages count threshold configuration property.
- Added 'instanceid' query property.
- Added 'requestid' query property.
- Updated fastlane configuration to speed test stage up.
|
Added | - Added builder pattern for API calls.
- Added 'fire' and 'replicate' options to publish API call builder.
|
Fixed | - Fixed issue with shared auto-updating user calendar.
|
Modified | - added NS_SWIFT_NAME with Swift equivalent specified in it to all public API to prevent Swift function signature change between Swift releases.
|
Modified | - added published message sequence number to publish API call (this information arrive as message envelope and used for issues debugging).
- added automatic heartbeat interval using formula and heartbeat value for calculated value.
- deprecated 'actualChannel' and 'subscribedChannel' in favor of 'channel' and 'subscription' (properties still available, but will be eventually will be completelly removed).
|
Added | - added logger method which will allow to use it from Swift.
- added 'channel' and 'subscription' properties to represent channel from which event arrived and actual data stream name which is used by PubNub client for subscription.
|
Fixed | - Changed default logs directory which should be used for tvOS client.
|
Added | - added scheduled API calls completion before application suspension (for iOS only).
- added Carthage support.
- added ability to disable message stripping (removing data which has been added by client during publish with mobile payload) which is enabled by default.
|
Modified | - removed dependency to CocoaLumberjack.
- by default Framework bundles will be build with bitcode enabled.
|
Fixed | - fixed timeout issue which caused by recently added shared NSURLSessionConfiguration configuration.
|
Modified | - added tests to cover fixed issue
|
Modified | - added ability provide limited customization of NSURLSessionConfiguration.
- added bitcode support for frameworks.
|
Fixed | - fixed podspec dependency version format compatibility with CocoaPods 0.39.
|
Fixed | - fixed issue for case when client doesn't use encryption and message has been received w/o mobile payload to clean up.
- original message (in case of decryption error) will be passed into associatedObject of PNStatus error instance.
|
Fixed | - fixed issue with PNNumber on 32bit system, when passed NSNumber instance created from unix-timestamp multiplied on 10000000.
- fixed message content decryption in case if it has been sent along with mobile push payload.
|
Modified | - mobile push payload removed from received message.
- 'pn_other' key has been removed and original object will be returned in delegate callback (this field used with message encryption and/or mobile push payload).
|
Added | - added Pub/Sub V2 API support.
- added message filtering basing on published message metadata.
- added ability to publish message with additional metadata for filtering purposes.
- added generics to collection properties and arguments.
|
Modified | - added null-ability annotations.
- updated tests.
- updated inline documentation formatting.
|
Fixed | - fixed occupancy value storage for state-change (it will be set if available).
- fixed issue with presence here now request where 'nil' passed as channel / group.
- fixed script responsible for module map update in built frameworks.
- fixed 'Universal Static Framework (iOS)' to use correct platform.
- added missing files to Mac Framework.
|
Modified | - changed way how heartbeat state notification is set. Now it can be specified in heartbeatNotificationOptions bit field property using PNHeartbeatNotificationOptions options.
|
Modified | - added new property to PNConfiguration class called notifyAboutFailedHeartbeatsOnly which allow to configure client to notify not only about failed heartbeat statuses but for success as well.
|
Modified | - added private persistent storage which allow to keep crucial data safe on device.
|
Added | - added new target to build dynamic framework for tvOS.
|
Fixed | - fixed issue with time token precision verification in case if non-PubNub's time token value has been passe.
|
Fixed | - fixed issue because of which client may not restore subscription on list of channels which has been left after previous unsubscription request.
|
Fixed | - fixed unsubscription issue because of which time token didn't get reset if there is no more channels on which client may continue subscription.
- fixed issue with -unsubscribeFromAll which may issue unwanted subscribe requests in case if method call followed by subscribe method call.
|
Added | - added ability to build static library based frameworks (universal as well).
- added Fabric support.
|
Fixed | - fixed client state cache issue because of which channel group state itself get updated even if state has been changed for one.
|
Added | - extended subscribe API with ability to specify arbitrarily time token to catch up from.
|
Modified | - added ability to specify time tokens not only as 17 digit, but time interval from NSDate acceptable too.
- added stringified representation for category and operation fields.
- removed client initialization code which affected PNLogger configuration.
|
Fixed | - fixed Mac OSX target and scripts for dynamic framework creation.
|
Added | - added watchOS deployment information to PubNub.podspec file.
|
Fixed | - adjusted Base64 decoding settings which will allow to decode encrypted messages from some clients which changed Base64 encoding algorithms.
|
Fixed | - fixed listener 'disconnect' status handling after client stumbled on network issues and reported 'unexpected disconnect'.
- fixed issue because of which string has been stored inside of serviceData for PNErrorStatus created from NSError.
|
Modified | - logger will print out current verbosity level information every time when it will be changed.
- all components (except core components) will add information about component to log output in format <PubNub::{component}>.
- changed 'build configuration' from Debug to Release for framework building targets.
- updated demo projects to correctly handle disconnection event (which happen for unsubscribe operation not for subscribe).
|
Modified | - fixed memory issues with PNNetwork instance.
- removed deprecated string encoding methods.
|
Added | - added ability to build dynamic frameworks for iOS 8.0+.
|
Modified | - version bump because of backward compatible changes in public interface.
|
Modified | - exposed heartbeat error to ‐client:didReceiveStatus:
|
Fixed | - fixed ping triggering logic after corner case with network issues
|
Fixed | - fixed issue which prevented proper -retry execution.
|
Modified | - updated logger macro usage.
- updated Podspec file organization.
- downgraded deployment target in Podspec file from 8.0 to 7.0.
|
Modified | - suppressed designated initializer warnings.
- added client information class.
- added conditional device ID specification in request constructor.
- added ObjC/Swift test for crypto issue.
|
Fixed | - fixed issue with messages decryption in history and real-time messaging API.
|
Fixed | - fixed issue with missing presence event handling.
- fixed subscriber parser issue because of which channel group name and actual channel changed their places in status object for presence event.
- fixed non-multiplexing subscription issue.
|
Modified | - added additional presence events tests.
|
Fixed | - fixed and changed data types for few data objects (which caused crash in swift environment).
- fixed size tests to handle updated packet size during tests.
- Fixed Podfile.
|
Modified | - removed CocoaPods post-install script from Podfile.
- added custom 'User-Agent' header field.
- changed test environment check.
|
Modified | - replaced AFNetworking with native NSURLSession wrapper.
- if empty array of channels passed to enable push notifications SDK will report error.
- added 'associatedObject' field to PNErrorStatus (for now only for decryption error on live feed).
- in case of decryption error only status object will arrive to listener (‐client:didReceiveMessage: won't be called).
|
Fixed | - fixed podspec to suppress warnings which appeared because private headers has been exposed to public.
- fixed code which had warnings from clang.
- fixed issues with composed message publish (with mobile push payloads).
- fixed demo application which provided wrong logger configuration for log file size.
- fixed issue with number publishing.
- fixed logger levels manipulation.
- fixed inability to publish mobile gateway payloads only.
|
Modified | - updated documentation hosted by CocoaPods.
|
Modified | - The new, refactored PN 4.0 for iOS is here.
|