Skip to content

v10.52.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 18 Jun 23:26
· 2 commits to master since this release

Enhancements

  • Add @ObservedSectionedResults.remove(atOffsets:section:) which adds the ability to
    remove a Realm Object when using onDelete on ForEach in a SwiftUI List.
  • Add support for Xcode 16 beta 1 and fix some of the new warnings. Note that
    this does not yet include full support for Swift 6 language mode
    (#8618).
  • Realm.asyncWrite() and Realm.asyncRefresh() now use the new #isolation
    feature to avoid sendability warnings when building with Xcode 16
    (#8618).
  • Include the originating client reset error message in errors reporting that
    automatic client reset handling failed. (Core #7761)
  • Improve the performance of insertion-heavy write transactions, particularly
    when setting a large number of properties on each object created
    (Core #7734).
  • App now trims trailing slashes from the base url rather than producing
    confusing 404 errors. (Core #7791).

Fixed

  • Deleting a Realm Object used in a @ObservedSectionedResults collection in SwiftUI
    would cause a crash during the diff on the View. (#8294, since v10.29.0)
  • Fix some client resets (such as migrating to flexible sync) potentially
    failing if a new client reset condition (such as rolling back a flexible sync
    migration) occurred before the first one completed.
    (Core #7542, since v10.40.0)
  • The encryption code no longer behaves differently depending on the system
    page size, which should entirely eliminate a recurring source of bugs related
    to copying encrypted Realm files between platforms with different page sizes.
    One known outstanding bug was (RNET-1141),
    where opening files on a system with a larger page size than the writing
    system would attempt to read sections of the file which had never been
    written to (Core #7698).
  • There were several complicated scenarios which could result in stale reads
    from encrypted files in multiprocess scenarios. These were very difficult to
    hit and would typically lead to a crash, either due to an assertion failure
    or DecryptionFailure being thrown (Core #7698, since v10.38.0).
  • Encrypted files have some benign data races where we can memcpy a block of
    memory while another thread is writing to a limited range of it. It is
    logically impossible to ever read from that range when this happens, but
    Thread Sanitizer quite reasonably complains about this. We now perform a
    slower operations when running with TSan which avoids this benign race
    (Core #7698).
  • Realm.asyncOpen() on a flexible sync Realm would sometimes fail to wait for
    pending subscriptions to complete, resulting in it not actually waiting for
    all data to be downloaded. (Core #7720,
    since flexible sync was introduced).
  • List<AnyRealmValue>.clear() would hit an assertion failure when used on a
    file originally created by a version of Realm older than v10.49.0.
    (Core #7771, since 10.49.0)

Compatibility

  • Realm Studio: 15.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 15.4.0.
  • CocoaPods: 1.10 or later.
  • Xcode: 15.1.0-16 beta

Internal

  • Upgraded realm-core from v14.9.0 to 14.10.1