All Versions
117
Latest Version
Avg Release Cycle
17 days
Latest Release
1641 days ago
Changelog History
Page 4
Changelog History
Page 4
-
v0.25.0 Changes
Public API Changes
- โ Added the
readReceiptsEnabled
property on theLYRConversation
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.
- โ Added the
-
v0.24.0 Changes
Public API Changes
- โ Added the
paginatedObjects
property on theLYRQueryController
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 toallObjects
could crash ifpaginationWindow
was smaller thantotalNumberOfObjects
. - ๐ Fixes a bug where the
LYRQueryController
wouldn't allow querying for conversations based on thelastMessage
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
andLYRIdentity
) 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.
- โ Added the
-
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 theuserID
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 beingnil
). [APPS-2630]
Public API Changes
- Made the
createdAt
attribute on theLYRConversation
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 ofLYRClient
objects will no longer returnYES
whenisConnected
is also true. - ๐ Conversation metadata changes more consistent across clients, when mutating it from multiple clients at once.
- The
-
v0.23.1 Changes
Public API Changes
LYRQueryController
objects now permit the developer to invokeexecute:
andexecuteWithCompletion:
multiple times. This allows for the reconfiguration of queries by mutating thepredicate
orsortDescriptors
properties of theLYRQuery
object driving the controller.- Setting the
paginationWindow
of anLYRQueryController
object to zero will now raise anNSInvalidArgumentException
. - The
LYRClientDelegate
methodlayerClient:didSwitchToSession:
andLYRClientDidSwitchSessionNotification
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 backgroundNSURLSession
and fails to compare the session's delegate with self. This happens due to 3rd party libraries (like Crittercism) that use method swizzling andNSProxy
objects onNSURLSessionDelegate
, which causes the pointer comparison to fail. [APPS-2581] - โฑ The
LYRClient
methodwaitForCreationOfObjectWithIdentifier: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 fromlayer:///identity/
tolayer:///identities/
. [APPS-2403] - The
LYRClient
methodconnectWithCompletion:
will no longer returnNO
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 onLYRQueryController
to allow access to all matching objects. [APPS-2470] - ๐ The
createdAt
property ofLYRConversation
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
orNotIn
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]
- The prefix for identifier URIs on
-
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 anLYRClient
instance. - The
LYRClient
initialization method has been changed. It now takes anLYRClientDelegate
instance which is required and the options argument has changed fromNSDictionary
toLYRClientOptions
. - ๐ Renamed
LYRClientSynchronizationPolicyMessageCount
toLYRClientSynchronizationPolicyPartialHistory
. - ๐ Introduced the
LYRConversationOptions
object meant for configuring conversation instance upon initialization. It replaces theLYRConversationOptionsMetadataKey
,LYRConversationOptionsDeliveryReceiptsEnabledKey
andLYRConversationOptionsDistinctByParticipantsKey
which was previously passed through the options argument with a dictionary. - ๐ง Introduced the
LYRMessageOptions
object meant for configuring message instance upon initialization. It replaces theLYRMessageOptionsPushNotificationConfigurationKey
, which was previously passed through the options argument with a dictionary. - Introduced the
LYRTypingIndicator
object that gets bundles in theuserInfo
of theLYRConversationDidReceiveTypingIndicatorNotification
. It replaces the previouslyNSNumber
wrapped typing indicator ENUM values that were bundled in the notification'suserInfo
.
โจ 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]
- ๐ง Introduced the
-
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 toLYRClient
. - โ Added
sessions
property toLYRClient
. - โ Added
newSessionWithIdentifier:
method toLYRClient
. - โ Added
sessionWithUserIdentifier:
method toLYRClient
. - โ Added
switchToSession:error:
method toLYRClient
. - โ Added
destroySession:error:
method toLYRClient
. - ๐ Deprecated
addPolicy:error:
in favor ofaddPolicies:error:
andremovePolicy:error:
in favor ofremovePolicies: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
orremovePolicy: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.
- Introduced
-
v0.20.5 Changes
โจ Enhancements
- โ Added support for querying for
nil
values with theIsEqualTo
andIsNotEqual
predicate operators. - ๐ Performance improvements and enhancements.
- โ Added support for querying for