Realm breaking changes

cocoapods

7 curated breaking changes across major versions of Realm. Use this as a migration checklist before bumping dependencies.

7
changes
Breaking changes by transition
  • v10.53.1 \u2192 v20.0.0breaking

    All Atlas App Services and Atlas Device Sync functionality has been removed. Users of Atlas Device Sync should pin to v10.

  • v10.53.1 \u2192 v20.0.0breaking

    Queries on AnyRealmValue properties previously considered strings to be equivalent to Data containing the UTF-8 encoded string. Strings and Data are now considered different types and queries for one of them will not match the other.

  • v10.53.1 \u2192 v20.0.0breaking

    Realms are no longer autoreleased when initialized. This means that code along the lines of the following will no longer work: ```Swift try! Realm().beginWrite() try! Realm().create(MyObject.self, value: ...) try! Realm().commitWrite() ``` This was a pattern which was somewhat natural with the original version of the objective-c API, but only worked in debug builds and would fail in release builds. We decided to make it consistently work by forcing the Realm to be autoreleased rather than let us

  • v10.53.1 \u2192 v20.0.0breaking

    Iterating a Map now produces the tuple `(key: KeyType, value: ValueType)` rather than a very similar struct, and `.asKeyValueSequence()` has been removed. This aligns `Map` with `Dictionary` and makes many operations defined by `Sequence` work on `Map`.

  • v10.53.1 \u2192 v20.0.0breaking

    Passing an empty array for notification keypaths to filter on (e.g. `obj.observe(keyPaths: [])`) was treated the same as passing `nil`, i.e. no filtering was done. It now instead observes no keypaths. For objects this means it will only report the object being deleted, and for collections it will only report collection-level changes and not changes to the objects inside the collection.

  • v10.48.1 \u2192 v10.49.0breaking

    Drop support for opening pre-v5.0.0 Realm files.

  • v10.45.3 \u2192 v10.46.0breaking

    The `schemaVersion` field of `Realm.Configuration` must now always be zero for synchronized Realms. Schema versions are currently not applicable to synchronized Realms and the field was previously not read.

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cocoapods/Realm
Realm breaking changes — CocoaPods migration guide | DepScope