All Versions
285
Latest Version
Avg Release Cycle
11 days
Latest Release
17 days ago

Changelog History
Page 6

  • v10.7.2 Changes

    March 08, 2021

    πŸ›  Fixed

    • During integration of a large amount of data from the server, you may get "Assertion failed: !fields.has_missing_parent_update()" (Core #4497, since v6.0.0)

    Compatibility

    • Realm Studio: 10.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.4.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.5.4 to v10.5.5
  • v10.7.1 Changes

    March 05, 2021

    πŸ›  Fixed

    • Queries of the form "a.b.c == nil" would match objects where b is nil if c did not have an index and did not if c was indexed. Both will now match to align with NSPredicate's behavior. ([Core #4460]https://github.com/realm/realm-core/pull/4460), since 4.3.0).
    • ⬆️ Restore support for upgrading files from file format 5 (Realm Cocoa 1.x). (Core #7089, since v5.0.0)
    • ⬆️ On 32bit devices you may get exception with "No such object" when upgrading to v10.* (Java #7314, since v5.0.0)
    • πŸ‘· The notification worker thread would rerun queries after every commit rather than only commits which modified tables which could effect the query results if the table had any outgoing links to tables not used in the query. (Core #4456, since v5.0.0).
    • πŸ›  Fix "Invalid ref translation entry [16045690984833335023, 78187493520]" assertion failure which could occur when using sync or multiple processes writing to a single Realm file. (#7086, since v5.0.0).

    Compatibility

    • Realm Studio: 10.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.4.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.5.3 to v10.5.4
  • v10.7.0 Changes

    February 23, 2021

    ✨ Enhancements

    • βž• Add support for some missing query operations on data propertys:
      • Data properties can be compared to other data properties (e.g. "dataProperty1 == dataProperty2").
      • Case and diacritic-insensitive queries can be performed on data properties. This will only have meaningful results if the data property contains UTF-8 string data.
      • Data properties on linked objects can be queried (e.g. "link.dataProperty CONTAINS %@")
    • Implement queries which filter on lists other than object links (lists of objects were already supported). All supported operators for normal properties are now supported for lists (e.g. "ANY intList = 5" or "ANY stringList BEGINSWITH 'prefix'"), as well as aggregate operations on the lists (such as "[email protected] > 100").
    • 🐎 Performance of sorting on more than one property has been improved. Especially important if many elements match on the first property. Mitigates (#7092)

    πŸ›  Fixed

    • πŸ›  Fixed a bug that prevented an object type with incoming links from being marked as embedded during migrations. (Core #4414)
    • The Realm notification listener thread could sometimes hit the assertion failure "!skip_version.version" if a write transaction was committed at a very specific time (since v10.5.0).
    • βž• Added workaround for a case where upgrading an old file with illegal string would crash (#7111)
    • πŸ›  Fixed a conflict resolution bug related to the ArrayMove instruction, which could sometimes cause an "Invalid prior_size" exception to prevent synchronization (since v10.5.0).
    • Skipping a change notification in the first write transaction after the observer was added could potentially fail to skip the notification (since v10.5.1).

    Compatibility

    • Realm Studio: 10.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.4.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.5.0 to v10.5.3
  • v10.6.0 Changes

    February 15, 2021

    ✨ Enhancements

    • βž• Add @StateRealmObject for SwiftUI support. This property wrapper type instantiates an observable object on a View. Use in place of SwiftUI.StateObject for Realm Object, List, and EmbeddedObject types.
    • βž• Add @ObservedRealmObject for SwiftUI support. This property wrapper type subscribes to an observable object and invalidates a view whenever the observable object changes. Use in place of SwiftUI.ObservedObject for Realm Object, List, or EmbeddedObject types.
    • βž• Add @ObservedResults for SwiftUI support. This property wrapper type retrieves results from a Realm. The results use the realm configuration provided by the environment value EnvironmentValues.realmConfiguration.
    • βž• Add EnvironmentValues.realm and EnvironmentValues.realmConfiguration for Realm and Realm.Configuration types respectively. Values can be injected into views using the View.environment method, e.g., MyView().environment(\.realmConfiguration, Realm.Configuration(fileURL: URL(fileURLWithPath: "myRealmPath.realm"))). The value can then be declared on the example MyView as @Environment(\.realm) var realm.
    • βž• Add SwiftUI.Binding extensions where Value is of type Object, List, or EmbeddedObject. These extensions expose methods for wrapped write transactions, to avoid boilerplate within views, e.g., TextField("name", $personObject.name) or $personList.append(Person()).
    • βž• Add Object.bind and EmbeddedObject.bind for SwiftUI support. This allows you to create bindings of realm properties when a propertyWrapper is not available for you to do so, e.g., TextField("name", personObject.bind(\.name)).
    • πŸ”€ The Sync client now logs error messages received from server rather than just the size of the error message.
    • πŸ”€ Errors returned from the server when sync WebSockets get closed are now captured and surfaced as a SyncError.
    • πŸ‘Œ Improve performance of sequential reads on a Results backed directly by a Table (i.e. realm.object(ClasSName.self) with no filter/sort/etc.) by 50x.
    • Orphaned embedded object types which are not linked to by any top-level types are now better handled. Previously the server would reject the schema, resulting in delayed and confusing error reporting. Explicitly including an orphan in objectTypes is now immediately reported as an error when opening the Realm, and orphans are automatically excluded from the auto-discovered schema when objectTypes is not specified.

    πŸ›  Fixed

    • Reading from a Results backed directly by a Table (i.e. realm.object(ClasSName.self) with no filter/sort/etc.) would give incorrect results if the Results was constructed and accessed before creating a new object with a primary key less than the smallest primary key which previously existed. (#7014, since v5.0.0).
    • πŸ”€ During synchronization you might experience crash with "Assertion failed: ref + size <= next->first". (Core #4388)

    Compatibility

    • Realm Studio: 10.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.4.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.4.0 to v10.5.0
  • v10.5.2 Changes

    February 09, 2021

    ✨ Enhancements

    • βž• Add support for "thawing" objects. Realm, Results, List and Object now have thaw() methods which return a live copy of the frozen object. This enables app behvaior where a frozen object can be made live again in order to mutate values. For example, first freezing an object passed into UI view, then thawing the object in the view to update values.
    • βž• Add Xcode 12.4 binaries to the release package.

    πŸ›  Fixed

    • πŸ”€ Inserting a date into a synced collection via AnyBSON.datetime(...) would be of type Timestamp and not Date. This could break synced objects with a Date property. (#6654, since v10.0.0).
    • πŸ›  Fixed an issue where creating an object after file format upgrade may fail with assertion "Assertion failed: lo() <= std::numeric_limits::max()" (#4295, since v5.0.0)
    • πŸ‘ Allow enumerating objects in migrations with types which are no longer present in the schema.
    • βž• Add RLMResponse.customStatusCode. This fixes timeout exceptions that were occurring with a poor connection. (#4188)
    • πŸ‘ Limit availability of ObjectKeyIdentifiable to platforms which support Combine to match the change made in the Xcode 12.5 SDK. (#7083)

    Compatibility

    • Realm Studio: 10.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.4.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.3.3 to v10.4.0
  • v10.5.1 Changes

    January 15, 2021

    ✨ Enhancements

    • βž• Add Xcode 12.3 binary to release package.
    • βž• Add support for queries which have nil on the left side and a keypath on the right side (e.g. "nil == name" rather than "name == nil" as was previously required).

    πŸ›  Fixed

    • Timeouts when calling server functions via App would sometimes crash rather than report an error.
    • πŸ›  Fix a race condition which would lead to "uncaught exception in notifier thread: N5realm15InvalidTableRefE: transaction_ended" and a crash when the source Realm was closed or invalidated at a very specific time during the first run of a collection notifier (#3761, since v5.0.0).
    • Deleting and recreating objects with embedded objects may fail. (Core PR #4240, since v10.0.0)
    • Fast-enumerating a List after deleting the parent object would crash with an assertion failure rather than a more appropriate exception. (Core #4114, since v5.0.0).
    • πŸ›  Fix an issue where calling a MongoDB Realm Function would never be performed as the reference to the weak User was lost.

    Compatibility

    • Realm Studio: 10.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.3.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.3.2 to v10.3.3
  • v10.5.0 Changes

    December 14, 2020

    ✨ Enhancements

    • πŸ“¦ MongoDB Realm is now supported when installing Realm via Swift Package Manager.

    πŸ›  Fixed

    • πŸ”€ The user identifier was added to the file path for synchronized Realms twice and an extra level of escaping was performed on the partition value. This did not cause functional problems, but made file names more confusing than they needed to be. Existing Realm files will continue to be located at the old path, while newly created files will be created at a shorter path. (Since v10.0.0).
    • πŸ›  Fix a race condition which could potentially allow queries on frozen Realms to access an uninitialized structure for search indexes (since v5.0.0).
    • πŸ›  Fix several data races in App and SyncSession initialization. These could possibly have caused strange errors the first time a synchronized Realm was opened (since v10.0.0).
    • πŸ›  Fix a use of a dangling reference when refreshing a user’s custom data that could lead to a crash (since v10.0.0).

    Compatibility

    • Realm Studio: 10.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.2.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.1.4 to v10.3.2
  • v10.4.0 Changes

    December 10, 2020

    ✨ Enhancements

    • βž• Add Combine support for App and User. These two types now have a objectWillChange property that emits each time the state of the object has changed (such as due to the user logging in or out). (PR #6977).

    πŸ›  Fixed

    • Integrating changesets from the server would sometimes hit the assertion failure "n != realm::npos" inside Table::create_object_with_primary_key() when creating an object with a primary key which previously had been used and had incoming links. (Core PR #4180, since v10.0.0).
    • The arm64 simulator slices were not actually included in the XCFramework release package. (PR #6982, since v10.2.0).

    Compatibility

    • Realm Studio: 10.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.2.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-core from v10.1.3 to v10.1.4
    • ⬆️ Upgraded realm-sync from v10.1.4 to v10.1.5
  • v10.3.0 Changes

    December 08, 2020

    ✨ Enhancements

    • βž• Add Google OpenID Connect Credentials, an alternative login credential to the Google OAuth 2.0 credential.

    πŸ›  Fixed

    • πŸ›  Fixed a bug that would prevent eventual consistency during conflict resolution. Affected clients would experience data divergence and potentially consistency errors as a result if they experienced conflict resolution between cycles of Create-Erase-Create for objects with primary keys (since v10.0.0).

    Compatibility

    • Realm Studio: 10.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.2.
    • CocoaPods: 1.10 or later.

    Internal

    • ⬆️ Upgraded realm-sync from v10.0.3 to v10.1.4
  • v10.2.0 Changes

    December 02, 2020

    ✨ Enhancements

    • πŸ“¦ The prebuilt binaries are now packaged as XCFrameworks. This adds support for
      🚚 Catalyst and arm64 simulators when using them to install Realm, removes the
      πŸ— need for the strip-frameworks build step, and should simplify installation.
    • πŸ‘ The support functionality for using the Objective C API from Swift is now
      included in Realm Swift and now includes all of the required wrappers for
      MongoDB Realm types. In mixed Objective C/Swift projects, we recommend
      continuing to use the Objective C types, but import both Realm and RealmSwift
      in your Swift files.

    πŸ›  Fixed

    • πŸ”€ The user identifier was added to the file path for synchronized Realms twice
      and an extra level of escaping was performed on the partition value. This did
      not cause functional problems, but made file names more confusing than they
      needed to be. Existing Realm files will continue to be located at the old
      path, while newly created files will be created at a shorter path. (Since v10.0.0).

    Compatibility

    • Realm Studio: 10.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.2.
    • CocoaPods: 1.10 or later.