All Versions
117
Latest Version
Avg Release Cycle
17 days
Latest Release
1367 days ago

Changelog History
Page 4

  • v0.25.0 Changes

    Public API Changes

    • โž• Added the readReceiptsEnabled property on the LYRConversation instance which indicates if the read receipts can be issued for the given channel. Conversations with read receipts disabled can have more than 25 participants. [APPS-2688]

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixes an issue where the identifier property of an LYRIdentity could yield nil. [APPS-2722]
    • ๐Ÿ›  Fixes an issue where in some cases the client would only sync the last most recent messages of each conversation and then stop the process ending with an incomplete sync. [APPS-2780]
    • โž• Added nullability annotations for LYRIdentity to ensure appropriate handling in Swift.
    • ๐Ÿ›  Fixed an issue where typing indicators events could be over-published.
    • ๐Ÿ›  Fixed an issue where synchronizeWithRemoteNotification:completion: would disconnect transport unnecessarily.
  • v0.24.0 Changes

    Public API Changes

    • โž• Added the paginatedObjects property on the LYRQueryController to access the subset of objects in a paginated query result set.

    โœจ Enhancements

    • ๐ŸŽ Performance improvements when dealing with high volume of conversations (reducing the memory and CPU usage). [APPS-2521]
    • ๐ŸŽ Performance improvements when receiving new conversations in real-time. [APPS-2603]
    • ๐ŸŽ Performance improvements when an already synchronized client reconnects. [APPS-2641]
    • ๐ŸŽ Performance improvements when performing synchronization upon receiving remote notifications. [APPS-2651]
    • ๐ŸŽ Performance improvements when cold-syncing client by prioritizing conversation synchronization for the most recent conversations. [APPS-2669]

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixes an issue where LYRQueryController's access to allObjects could crash if paginationWindow was smaller than totalNumberOfObjects.
    • ๐Ÿ›  Fixes a bug where the LYRQueryController wouldn't allow querying for conversations based on the lastMessage property. [APPS-2664]
    • ๐Ÿ›  Fixed an issue where metadata mutations would leak transient copies of NSDictionary objects. [APPS-2599]
    • Client now deallocates public API objects (LYRConversation, LYRMessage, LYRMessagePart and LYRIdentity) when they're not in use anymore.
    • ๐Ÿ“‡ Conversation metadata changes more consistent across clients, when changing it from multiple clients.
    • ๐Ÿ›  Fixes an issue where a client could crash during synchronization in response to a push notification of a conversation that was deleted before the client could perform the synchronization process. [APPS-2654]
    • ๐Ÿ›  Fixes the connection issues when the client is initialized with the app being launched in background (e.g. due to silent remote notification). [APPS-2566], [APPS-2666]
    • Client can now recover from bad database migrations, which could occur when running a new version of the client after an old one crashed. [APPS-2727].
    • Fixes an issue where de-authenticating the client might crash with the malloc: *** error for object 0xXXXXXXXXXXX: pointer being freed was not allocated message.
  • v0.23.3 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixes an issue where the client might fail to start synchronization process for a conversation upon receiving a remote notification. [APPS-2595]
    • ๐Ÿ›  Fixes an issue where the client might throw an exception ("Cannot initialize synchronization manager with nil databaseManager.") when transitioning the app from the background into the foreground.
    • ๐Ÿ›  Fixes an issue where the client wouldn't finish synchronizing content when woken up by a remote notification with an error "Synchronization from a remote notification could not be completed because synchronization failed to finish in 15 seconds.".
    • LYRIdentity object identifier attribute now correctly escapes the userID string (this includes the following characters: :;#@). [APPS-2627]
    • ๐Ÿ›  Fixes an issue where the authenticated user's identity (when accessing client.authenticatedUser) might lose all the information (firstName, lastName, displayName, metadata... ended up being nil). [APPS-2630]

    Public API Changes

    • Made the createdAt attribute on the LYRConversation nullable, which solves the issues with Swift.
    • โœ‚ Removed dead code around the LYRActor class.
    • ๐Ÿ“š Updated LYRQueryController header documentation.
  • v0.23.2 Changes

    ๐Ÿ› Bug Fixes

    • The isConnecting method of LYRClient objects will no longer return YES when isConnected is also true.
    • ๐Ÿ“‡ Conversation metadata changes more consistent across clients, when mutating it from multiple clients at once.
  • v0.23.1 Changes

    Public API Changes

    • LYRQueryController objects now permit the developer to invoke execute: and executeWithCompletion: multiple times. This allows for the reconfiguration of queries by mutating the predicate or sortDescriptors properties of the LYRQuery object driving the controller.
    • Setting the paginationWindow of an LYRQueryController object to zero will now raise an NSInvalidArgumentException.
    • The LYRClientDelegate method layerClient:didSwitchToSession: and LYRClientDidSwitchSessionNotification now only get called when client switches between sessions. Previously the client would also notify of the session switch when authenticating for the first time. [APPS-2584]

    ๐Ÿ› Bug Fixes

    • Attempting to wait for an invalid object identifier with the appropriate prefix and number of components (i.e. layer:///invalid/1234) will now return an error instead of crashing.
    • ๐Ÿ›  Fixes the crash in LYRClient creation process, where the internal logic tries to create a background NSURLSession and fails to compare the session's delegate with self. This happens due to 3rd party libraries (like Crittercism) that use method swizzling and NSProxy objects on NSURLSessionDelegate, which causes the pointer comparison to fail. [APPS-2581]
    • โฑ The LYRClient method waitForCreationOfObjectWithIdentifier:timeout:completion: is now guaranteed to always invoke the completion block on the main thread.
  • v0.23.0 Changes

    Public API Changes

    • The prefix for identifier URIs on LYRIdentity objects has changed from layer:///identity/ to layer:///identities/. [APPS-2403]
    • The LYRClient method connectWithCompletion: will no longer return NO and an error when an authentication challenge is encountered.
    • Deauthenticating the client will no longer result in transport being disconnected.
    • Query controllers will no longer emit will and did change notifications if the result set did not change.

    โœจ Enhancements

    • Introduced allObjects method on LYRQueryController to allow access to all matching objects. [APPS-2470]
    • ๐Ÿ”€ The createdAt property of LYRConversation is now a synchronized value. [APPS-2433]
    • ๐Ÿ”€ Event publication is now prioritized at the network level over data retrieval, resulting in faster message sends during cold sync.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixes an issue where Layer client would not synchronize the full conversation when user gets added to an existing conversation. [APPS-2406]
    • ๐Ÿ›  Fixes an issue where Layer client might crash when a conversation got deleted by another participant. [APPS-2406]
    • ๐Ÿ›  Fixes an issue where invoking [client setDebuggingEnabled:YES] would make the Client duplicate log lines in the log file.
    • ๐Ÿ›  Fixes an issue where Layer client might crash during the synchronization process due to an internal collection mutation during enumeration. [APPS-2406]
    • ๐Ÿ›  Fixes an issue where Layer client might crash during transport transitions (e.g. from WiFi to Cellular) or when de-authenticating the client. [APPS-2499]
    • ๐Ÿ‘ป Querying using the In or NotIn predicates with a non-collection value now returns an error instead of throwing an exception. [APPS-2506]
    • Transport is now disconnected when background time expires to prevent a transient issue with hung sockets.
    • ๐Ÿ›  Fixes an issue where Layer client might download the same rich content multiple times causing high network bandwidth and CPU usage. [APPS-2511]
    • ๐Ÿ›  Fixes an issue where concurrent operations may crash due to thread-safety violations.
    • ๐Ÿ›  Fixes an issue where the synchronization process would get caught in an infinite loop trying to download rich content and applying the updates to the LYRMessagePart instance. [APPS-2517]
    • ๐Ÿ›  Fixed an issue where transport would not be suspended upon entering the background if you are in the midst of connecting.
    • ๐Ÿ›  Fixed an issue where auto-detection of an HTTPS proxy would result in connection errors such as "No endpoints available, unable to connect socket". [APPS-2523]
    • ๐Ÿ›  Fixed a crash in LYRConversation markAllMessagesAsRead: method. [APPS-2510]
    • ๐Ÿ›  Fixes a crash in the synchronization process related to a conversation created using the Layer CAPI. [APPS-2527]
    • ๐Ÿ›  Fixes a crash in the synchronization process related to conversation deletions. [APPS-2541]
    • ๐Ÿ“‡ Querying for an empty metadata dictionary will now return only conversations without metadata instead of all conversations. [APPS-2447]
    • ๐Ÿ›  Fixes an issue where Layer client would ignore the rich content auto-download settings after connecting. [APPS-2545]
    • ๐Ÿ›  Fixes an issue where the LYRConversation's 'totalNumberOfMessages would yield the wrong number even on a fully synchronized client.
    • Request failures within authenticateWithIdentityToken:completion: were incorrectly handled as status code mismatches. The correct errors are now returned. [APPS-2548]
    • In cases where participants would send messages back and forth at a higher frequency the messages could get out of order. [APPS-2551]
    • Client won't issue authentication challenges during the de-authentication process anymore. [APPS-2553]
    • ๐Ÿ›  Fixes a crash when deserializing metadata with conflicting keys which could happen due to a server-side race condition. [APPS-2550]
    • โšก๏ธ Query controllers that have not been executed will no longer emit delegate updates. [APPS-2560]
    • ๐Ÿ›  Fixes background rich content transfers which could get stuck. [APPS-2557]
  • v0.22.0 Changes

    ๐Ÿš€ This release includes a number of public API changes to make development with LayerKit easier and more expressive in Swift. We have added real classes and types for configuration options that previously accepted dictionaries and modeled typing indicators as a class.

    Public API Changes

    • ๐Ÿ”ง Introduced the LYRClientOptions object which provides for configuring synchronization options for an LYRClient instance.
    • The LYRClient initialization method has been changed. It now takes an LYRClientDelegate instance which is required and the options argument has changed from NSDictionary to LYRClientOptions.
    • ๐Ÿ“‡ Renamed LYRClientSynchronizationPolicyMessageCount to LYRClientSynchronizationPolicyPartialHistory.
    • ๐Ÿ“‡ Introduced the LYRConversationOptions object meant for configuring conversation instance upon initialization. It replaces the LYRConversationOptionsMetadataKey, LYRConversationOptionsDeliveryReceiptsEnabledKey and LYRConversationOptionsDistinctByParticipantsKey which was previously passed through the options argument with a dictionary.
    • ๐Ÿ”ง Introduced the LYRMessageOptions object meant for configuring message instance upon initialization. It replaces the LYRMessageOptionsPushNotificationConfigurationKey, which was previously passed through the options argument with a dictionary.
    • Introduced the LYRTypingIndicator object that gets bundles in the userInfo of the LYRConversationDidReceiveTypingIndicatorNotification. It replaces the previously NSNumber wrapped typing indicator ENUM values that were bundled in the notification's userInfo.

    โœจ Enhancements

    • ๐Ÿ‘Œ Improved performance of messaging after the initial synchronization finishes.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixes an issue where the client wouldn't synchronize a newly received conversation, if the app is brought into the foreground by a remote notification.
    • ๐Ÿ›  Fixes a crash that could happen during the synchronization process, when processing deleted conversations.
    • ๐Ÿ›  Fixes an issue where the client would synchronize the complete history, even when configured with a different synchronization policy.
    • ๐Ÿ›  Fixed a crash in the LYRExternalContentPreparationOperation that occurs during cancellation of a Rich Content transfer. [APPS-2476]
  • v0.21.1 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixed an issue where a client would receive a new config bag and ignore overwriting the changes in the synchronization logic, which would result in messages not getting published (stuck in pending).

    โœจ Enhancements

    • โž• Added a more descriptive logging to message publication logic.
  • v0.21.0 Changes

    โœจ Enhancements

    • Introduced LYRSession class to provide applications with the ability to manage multiple user sessions simultaneously.
    • โž• Added functionality to allow applications to switch user sessions without deauthenticating.
    • ๐ŸŽ Performance improvement in the synchronization process.

    Public API Changes

    • โž• Added LYRSession object.
    • โž• Added currentSession property to LYRClient.
    • โž• Added sessions property to LYRClient.
    • โž• Added newSessionWithIdentifier: method to LYRClient.
    • โž• Added sessionWithUserIdentifier: method to LYRClient.
    • โž• Added switchToSession:error: method to LYRClient.
    • โž• Added destroySession:error: method to LYRClient.
    • ๐Ÿšš Deprecated addPolicy:error: in favor of addPolicies:error: and removePolicy:error: in favor of removePolicies:error: which provides for performing bulk policy operations.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixes an issue where the client might crash with an exception ('Task created in a session that has been invalidated') during the de-authentication process or then disconnecting the client by hand.
    • ๐Ÿ›  Fixes an issue where the client might crash with EXC_CRASH (SIGABRT) when it's downloading a lot of message parts at the time.
    • ๐Ÿ›  Fixes an issue which caused the client to improperly handle calls to addPolicy:error or removePolicy:error: when called multiple times in rapid succession.
    • ๐Ÿ›  Fixes an issue where the client might crash when trying to handle an internal error.
    • ๐Ÿ›  Fixes an issue that could prevent a client from reauthenticating after receiving an authentication challenge.
    • ๐Ÿ›  Fixes an issue that could lead to a crash during multiple calls to deauthenticateWithCompletion:.
    • ๐Ÿ›  Fixes an issue where the client could materialize a deleted conversation with no messages.
  • v0.20.5 Changes

    โœจ Enhancements

    • โž• Added support for querying for nil values with the IsEqualTo and IsNotEqual predicate operators.
    • ๐ŸŽ Performance improvements and enhancements.