github realm/realm-swift v10.26.0

latest releases: v10.50.0, v10.49.3, v10.48.2...
23 months ago

Xcode 13.1 is now the minimum supported version of Xcode, as Apple no longer
allows submitting to the app store with Xcode 12.

Enhancements

  • Add Xcode 13.4 binaries to the release package.
  • Add Swift API for asynchronous transactions
    try? realm.writeAsync {
        realm.create(SwiftStringObject.self, value: ["string"])
    } onComplete: { error in
        // optional handling on write complete
    }

    try? realm.beginAsyncWrite {
        realm.create(SwiftStringObject.self, value: ["string"])
        realm.commitAsyncWrite()
    }

    let asyncTransactionId = try? realm.beginAsyncWrite {
        // ...
    }
    try! realm.cancelAsyncWrite(asyncTransactionId)
  • Add Obj-C API for asynchronous transactions
   [realm asyncTransactionWithBlock:^{
        [StringObject createInRealm:realm withValue:@[@"string"]];
    } onComplete:^(NSError *error) {
        // optional handling
    }];

    [realm beginAsyncWriteTransaction:^{
        [StringObject createInRealm:realm withValue:@[@"string"]];
        [realm commitAsyncWriteTransaction];
    }];

    RLMAsyncTransactionId asyncTransactionId = [realm beginAsyncWriteTransaction:^{
        // ...
    }];
    [realm cancelAsyncTransaction:asyncTransactionId];
  • Improve performance of opening a Realm with objectClasses/objectTypes set
    in the configuration.
  • Implement the Realm event recording API for reporting reads and writes on a
    Realm file to Atlas.

Fixed

  • Lower minimum OS version for async login and FunctionCallables to match the
    rest of the async functions. ([#7791]#7791)
  • Consuming a RealmSwift XCFramework with library evolution enabled would give the error
    'Failed to build module 'RealmSwift'; this SDK is not supported by the compiler'
    when the XCFramework was built with an older XCode version and is
    then consumed with a later version. (#7313, since v3.18.0)
  • A data race would occur when opening a synchronized Realm with the client
    reset mode set to discardLocal on one thread at the same time as a client
    reset was being processed on another thread. This probably did not cause any
    functional problems in practice and the broken timing window was very tight (since 10.25.0).
  • If an async open of a Realm triggered a client reset, the callbacks for
    discardLocal could theoretically fail to be called due to a race condition.
    The timing for this was probably not possible to hit in practice (since 10.25.0).
  • Calling [RLMRealm freeze]/Realm.freeze on a Realm which had been created from writeCopy
    would not produce a frozen Realm. (#7697, since v5.0.0)
  • Using the dynamic subscript API on unmanaged objects before first opening a
    Realm or if objectTypes was set when opening a Realm would throw an
    exception (#7786).
  • The sync client may have sent a corrupted upload cursor leading to a fatal
    error from the server due to an uninitialized variable.
    (#5460, since v10.25.1)
  • Flexible sync would not correctly resume syncing if a bootstrap was interrupted
    (#5466, since v10.21.1).

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 13.4.
  • CocoaPods: 1.10 or later.
  • Xcode: 13.1-13.4.

Internal

  • Upgraded realm-core from v11.15.0 to v11.17.0

Don't miss a new realm-swift release

NewReleases is sending notifications on new releases.