Realm Xamarin v3.4.0 Release Notes
Release Date: 2019-01-09 // over 5 years ago-
NOTE!!! You will need to upgrade your Realm Object Server to at least version 3.11.0 or use Realm Cloud. If you try to connect to a ROS v3.10.x or previous, you will see an error like
Wrong protocol version in Sync HTTP request, client protocol version = 25, server protocol version = 24
.✨ Enhancements
- Download progress is now reported to the server, even when there are no local changes. This allows the server to do history compaction much more aggressively, especially when there are many clients that rarely or never make local changes. (#1772)
- ⬇️ Reduce memory usage when integrating synchronized changes sent by ROS.
- ➕ Added ability to supply a custom log function for handling logs emitted by Sync by specifying
SyncConfigurationBase.CustomLogger
. It must be set before opening a synchronized Realm. (#1824) - Clients using protocol 25 now report download progress to the server, even when they make no local changes. This allows the server to do history compaction much more aggressively, especially when there are many clients that rarely or never make local changes. (#1772)
- ➕ Add a User-Agent header to HTTP requests made to the Realm Object Server. By default, this contains information about the Realm library version and .NET platform. Additional details may be provided (such as the application name/version) by setting
SyncConfigurationBase.UserAgent
prior to opening a synchronized Realm. If developing a Xamarin app, you can use the Xamarin.Essentials plugin to automate that:SyncConfiguration.UserAgent = $"{AppInfo.Name} ({AppInfo.PackageName} {AppInfo.VersionString})"
.
🛠 Fixed
- 🛠 Fixed a bug that could lead to crashes with a message such as
Assertion failed: ndx < size() with (ndx, size()) = [742, 742]
. - 🛠 Fixed a bug that resulted in an incorrect
LogLevel
being sent to Sync when settingSyncConfigurationBase.LogLevel
. (#1824, since 2.2.0) - 🛠 Fixed a bug that prevented
Realm.GetInstanceAsync
from working when used withQueryBasedSyncConfiguration
. (#1827, since 3.1.0)
💥 Breaking Changes
- 🚚 The deprecated method
realm.SubscribeToObjectsAsync
has been removed in this version. (#1772) - 🔧
User.ConfigurePersistence
has been deprecated in favor ofSyncConfigurationBase.Initialize
.
Compatibility
- Realm Object Server: 3.11.0 or later.
⬆️ The sync protocol version has been bumped to version 25. The server is backwards-compatible with clients using protocol version 24 or below, but clients at version 25 are not backwards-compatible with a server at protocol version 24. The server must be upgraded before any clients are upgraded.
Internal
- ⬆️ Upgraded Sync from 3.9.2 to 3.14.11 and Core from 5.8.0 to 5.12.7.