Realm v10.15.0 Release Notes

Release Date: 2021-09-10 // over 2 years ago
  • โœจ Enhancements

    • โž• Add async versions of the Realm.asyncOpen and App.login methods.
    • ThreadSafeReference no longer pins the source transaction version for anything other than a Results created by filtering a collection. This means that holding on to thread-safe references to other things (such as Objects) will no longer cause file size growth.
    • A ThreadSafeReference to a Results backed by a collection can now be created inside a write transaction as long as the collection was not created in the current write transaction.
    • ๐Ÿ”€ Synchronized Realms are no longer opened twice, cutting the address space and file descriptors used in half. (Core #4839)
    • When using the SwiftUI helper types (@ObservedRealmObject and friends) to bind to an Equatable property, self-assignment no longer performs a pointless write transaction. SwiftUI appears to sometimes call a Binding's set function multiple times for a single UI action, so this results in significantly fewer writes being performed.

    ๐Ÿ›  Fixed

    • โž• Adding an unmanaged object to a Realm that was declared with @StateRealmObject would throw the exception "Cannot add an object with observers to a Realm".
    • ๐Ÿ“„ The RealmCollectionChange docs refered to indicies in modifications as the 'new' collection. This is incorrect and the docs now state that modifications refer to the previous version of the collection. (Cocoa #7390)
    • ๐Ÿ›  Fix crash in RLMSyncConfiguration.initWithUser error mapping when a user is disabled/deleted from MongoDB Realm dashboard. (Cocoa #7399, since v10.0.0)
    • ๐ŸŒฒ If the application crashed at the wrong point when logging a user in, the next run of the application could hit the assertion failure "m_state == SyncUser::State::LoggedIn" when a synchronized Realm is opened with that user. (Core #4875, since v10.0.0)
    • The keyPaths: parameter to @ObservedResults did not work (since v10.12.0).

    Compatibility

    • Realm Studio: 11.0.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 10.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 12.5.1.
    • CocoaPods: 1.10 or later.
    • Xcode: 12.2-13.0 beta 5.

    Internal

    • โฌ†๏ธ Upgraded realm-core from 11.3.1 to 11.4.1