github realm/realm-swift v10.32.1

latest releases: v10.52.1, v10.52.0, v10.51.0...
20 months ago

Enhancements

  • Improve performance of client reset with automatic recovery and converting top-level tables into embedded tables (Core #5897).
  • Realm.Error is now a typealias for RLMError rather than a manually-defined version of what the automatic bridging produces. This should have no effect on existing working code, but the manual definition was missing a few things supplied by the automatic bridging.
  • Some sync errors sent by the server include a link to the server-side logs associated with that error. This link is now exposed in the serverLogURL property on SyncError (or RLMServerLogURLKey userInfo field when using NSError).

Fixed

  • Many sync and app errors were reported using undocumented internal error codes and/or domains and could not be programmatically handled. Some notable things which now have public error codes instead of unstable internal ones:
    • Realm.Error.subscriptionFailed: The server rejected a flexible sync subscription.
    • AppError.invalidPassword: A login attempt failed due to a bad password.
    • AppError.accountNameInUse: A registration attempt failed due to the account name being in use.
    • AppError.httpRequestFailed: A HTTP request to Atlas App Services
      completed with an error HTTP code. The failing code is available in the
      httpStatusCode property.
    • Many other less common error codes have been added to AppError.
    • All sync errors other than SyncError.clientResetError reported incorrect
      error codes.
      (since v10.0.0).
  • UserAPIKey.objectId was incorrectly bridged to Swift as RLMObjectId to ObjectId. This may produce warnings about an unneccesary cast if you were previously casting it to the correct type (since v10.0.0).
  • Fixed an assertion failure when observing change notifications on a sectioned result, if the first modification was to a linked property that did not cause the state of the sections to change. (Core #5912, since the introduction of sectioned results in v10.29.0)
  • Fix a use-after-free if the last external reference to an encrypted synchronized Realm was closed between when a client reset error was received and when the download of the new Realm began. (Core #5949, since 10.28.4).
  • Fix an assertion failure during client reset with recovery when recovering a list operation on an embedded object that has a link column in the path prefix to the list from the top level object. (Core #5957, since introduction of automatic recovery in v10.32.0).
  • Creating a write transaction which is rejected by the server due to it exceeding the maximum transaction size now results in a client reset error instead of synchronization breaking and becoming stuck forever (Core #5209, since v10).
  • Opening an unencrypted file with an encryption key would sometimes report a misleading error message that indicated that the problem was something other than a decryption failure (Core #5915, since 0.89.0).
  • Fix a rare deadlock which could occur when closing a synchronized Realm immediately after committing a write transaction when the sync worker thread has also just finished processing a changeset from the server (Core #5948).

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

Internal

  • Upgraded realm-core from 12.9.0 to 12.11.0.

Don't miss a new realm-swift release

NewReleases is sending notifications on new releases.