Changelog History
Page 10
-
v5.3.6 Changes
September 02, 2020๐ Fixed
- โช Work around iOS 14 no longer allowing the use of file locks in shared containers, which resulted in the OS killing an app which entered the background while a Realm was open (#6671).
- โฌ๏ธ If an attempt to upgrade a realm has ended with a crash with "migrate_links()" in the call stack, the realm was left in an invalid state. The migration logic now handles this state and can complete upgrading files which were incompletely upgraded by pre-5.3.4 versions.
- ๐ Fix deadlocks when writing to a Realm file on an exFAT partition from macOS. (#6691).
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.6.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.19 to v6.0.23
- โฌ๏ธ Upgraded realm-sync from v5.0.16 to v5.0.20
-
v5.3.5 Changes
August 20, 2020๐ Fixed
- Opening Realms on background threads could produce spurious Incorrect Thread exceptions when a cached Realm existed for a previously existing thread with the same thread ID as the current thread. (#6659, #6689, #6712, since 5.0.0).
- โฌ๏ธ Upgrading a table with incoming links but no properties would crash. This was probably not possible to hit in practice as we reject object types with no properties.
- โฌ๏ธ Upgrading a non-nullable List which nonetheless contained null values would crash. This was possible due to missing error-checking in some older versions of Realm.
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.6.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.18 to v6.0.19
- โฌ๏ธ Upgraded realm-sync from v5.0.15 to v5.0.16
-
v5.3.4 Changes
August 17, 2020๐ Fixed
- Accessing a Realm after calling
deleteAll()
would sometimes throw an exception with the reason 'ConstIterator copy failed'. (#6597, since 5.0.0). - ๐ Fix an assertion failure inside the
migrate_links()
function when upgrading a pre-5.0 Realm file. - ๐ Fix a bug in memory mapping management. This bug could result in multiple different asserts as well as segfaults. In many cases stack backtraces would include members of the EncyptedFileMapping near the top - even if encryption was not used at all. In other cases asserts or crashes would be in methods reading an array header or array element. In all cases the application would terminate immediately. (Core #3838, since v5.0.0).
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.6.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.14 to v6.0.18
- โฌ๏ธ Upgraded realm-sync from v5.0.14 to v5.0.15
- Accessing a Realm after calling
-
v5.3.3 Changes
July 30, 2020โจ Enhancements
- โ Add support for the x86_64 watchOS simulator added in Xcode 12.
๐ Fixed
- ๐ (RLM)Results objects would incorrectly pin old read transaction versions
until they were accessed after a Realm was refreshed, resulting in the Realm
file growing to large sizes if a Results was retained but not accessed after
every write. (#6677, since 5.0.0). - ๐ Fix linker errors when using SwiftUI previews with Xcode 12 when Realm was
๐ฆ installed via Swift Package Manager. (#6625)
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.6.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.12 to v6.0.14
- โฌ๏ธ Upgraded realm-sync from v5.0.12 to v5.0.14
-
v5.3.2 Changes
July 21, 2020๐ Fixed
- ๐ Fix a file format upgrade bug when opening older Realm files. Could cause assertions like "Assertion failed: ref != 0" during opning of a Realm. (Core #6644, since 5.2.0)
- ๐ A use-after-free would occur if a Realm was compacted, opened on multiple threads prior to the first write, then written to while reads were happening on other threads. This could result in a variety of crashes, often inside realm::util::EncryptedFileMapping::read_barrier. (Since v5.0.0, #6626, #6628, #6652, #6655, #6656).
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.6.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.11 to v6.0.12
- โฌ๏ธ Upgraded realm-sync from v5.0.11 to v5.0.12
-
v5.3.1 Changes
July 17, 2020โจ Enhancements
- โ Add prebuilt binary for Xcode 11.6 to the release package.
๐ Fixed
- Creating an object inside migration which changed that object type's primary key would hit an assertion failure mentioning primary_key_col (#6613, since 5.0.0).
- Modifying the value of a string primary key property inside a migration with a Realm file which was upgraded from pre-5.0 would corrupt the property's index, typically resulting in crashes. (Core #3765, since 5.0.0).
- โฌ๏ธ Some Realm files which hit assertion failures when upgrading from the pre-5.0 file format should now upgrade correctly (Since 5.0.0).
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.6.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.9 to v6.0.11
- โฌ๏ธ Upgraded realm-sync from v5.0.8 to v5.0.11
-
v5.3.0 Changes
July 14, 2020โจ Enhancements
- โ Add
Realm.objectWillChange
, which is a Combine publisher that will emit a notification each time the Realm is refreshed or a write transaction is commited.
๐ Fixed
- ๐ Fix the spelling of
ObjectKeyIdentifiable
. The old spelling is available and deprecated for compatiblity. - ๐ Rename
RealmCollection.publisher
toRealmCollection.collectionPublisher
. The old name interacted with thepublisher
defined bySequence
in very confusing ways, so we need to use a different name. Thepublisher
name is still available for compatiblity. (#6516) - โช Work around "xcodebuild timed out while trying to read SwiftPackageManagerExample.xcodeproj" errors when installing Realm via Carthage. (#6549).
- ๐ Fix a performance regression when using change notifications. (Since 5.0.0, #6629).
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.5.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.8 to v6.0.9
- โฌ๏ธ Upgraded realm-sync from v5.0.7 to v5.0.8
- โ Add
-
v5.2.0 Changes
June 30, 2020๐ Fixed
- ๐ Opening a SyncSession with LOCAL app deployments would not use the correct endpoints. ๐ This release also contains all changes from 5.0.3 and 5.1.0.
๐ฅ Breaking Changes
- The following classes & aliases have been renamed to align Cocoa with the other Realm SDKs:
Old API New API RLMSyncUser
RLMUser
๐ SyncUser
RLMAppCredential
RLMCredential
AppCredential
Credential
RealmApp
App
RLMUserAPIKeyProviderClient
RLMAPIKeyAuth
RLMUsernamePasswordProviderClient
RLMEmailPasswordAuth
UsernamePasswordProviderClient
EmailPasswordAuth
UserAPIKeyProviderClient
APIKeyAuth
- ๐ The following functionality has also moved to the User:
Old API New API [RLMApp callFunctionNamed:]
[RLMUser callFunctionNamed:]
App.functions
User.functions
[RLMApp mongoClientWithServiceName:]
[RLMUser mongoClientWithServiceName:]
App.mongoClient(serviceName)
User.mongoClient(serviceName)
[RLMApp userAPIKeyProviderClient]
[RLMUser apiKeyAuth]
App.userAPIKeyProviderClient
App.apiKeyAuth()
[RLMApp logOut:]
[RLMUser logOut]
App.logOut(user)
User.logOut()
๐ [RLMApp removeUser:]
๐ App.remove(user)
[RLMApp linkUser:credentials:]
[RLMUser linkWithCredentials:]
App.linkUser(user, credentials)
User.link(credentials)
The argument labels in Swift have changed for several methods: | Old API | New API | |:-------------------------------------------------------------|:--------------------------------------------------------------| |
APIKeyAuth.createApiKey(withName:completion:)
|APIKeyAuth.createApiKey(named:completion:)
| |App.login(withCredential:completion:) |
App.login(credentials:completion:)| |
App.pushClient(withServiceName:)|
App.pushClient(serviceName:)| |
MongoClient.database(withName:)|
MongoClient.database(named:)` |refreshCustomData()
on User now returns void and passes the custom data to the callback on success.
Compatibility
- ๐ This release introduces breaking changes w.r.t some sync classes and MongoDB Realm Cloud functionality. (See the breaking changes section for the full list)
- โฌ๏ธ File format: Generates Realms with format v11 (Reads and upgrades all previous formats)
- MongoDB Realm: 84893c5 or later.
- ๐ APIs are backwards compatible with all previous releases in the 10.0.0-alpha series.
- Realm Studio: 10.0.0 or later.
- ๐ Carthage release for Swift is built with Xcode 11.5.
Internal
- โฌ๏ธ Upgraded realm-core from v6.0.3 to v10.0.0-beta.1
- โฌ๏ธ Upgraded realm-sync from v5.0.1 to v10.0.0-beta.2
-
v5.1.0 Changes
June 22, 2020โจ Enhancements
- ๐ Allow opening full-sync Realms in read-only mode. This disables local schema
๐ initialization, which makes it possible to open a Realm which the user does
not have write access to without using asyncOpen. In addition, it will report
errors immediately when an operation would require writing to the Realm
๐ rather than reporting it via the sync error handler only after the server
rejects the write.
๐ Fixed
- ๐ง Opening a Realm using a configuration object read from an existing Realm
would incorrectly bind the new Realm to the original Realm's thread/queue,
resulting in "Realm accessed from incorrect thread." exceptions.
(#6574,
#6559, since 5.0.0).
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.5.
- ๐ Allow opening full-sync Realms in read-only mode. This disables local schema
-
v5.0.3 Changes
June 10, 2020๐ Fixed
-[RLMObject isFrozen]
always returned false. (#6568, since 5.0.0).- ๐ป Freezing an object within the write transaction that the object was created in now throws an exception rather than crashing when the object is first used.
- The schema for frozen Realms was not properly initialized, leading to crashes when accessing a RLMLinkingObjects property. (#6568, since 5.0.0).
- โ Observing
Object.isInvalidated
via a keypath literal would produce a warning in Swift 5.2 due to the property not being marked as @objc. (#6554)
Compatibility
- โฌ๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
- Realm Object Server: 3.21.0 or later.
- Realm Studio: 3.11 or later.
- ๐ APIs are backwards compatible with all previous releases in the 5.x.y series.
- ๐ Carthage release for Swift is built with Xcode 11.5.