LayerKit v0.23.0 Release Notes
-
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