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

Changelog History
Page 18

  • v3.0.0-beta.3 Changes

    August 23, 2017

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ‘ iOS 7 is no longer supported.
    • Computed properties on Realm object types are detected and no longer added to the automatically generated schema.
    • โšก๏ธ -[RLMRealm addOrUpdateObjectsInArray:] has been renamed to -[RLMRealm addOrUpdateObjects:] for consistency with similar methods that add or delete objects.
    • โšก๏ธ -[RLMRealm addOrUpdateObjects:] and -[RLMRealm deleteObjects:] now require their argument to conform to NSFastEnumeration, to match similar APIs that also take collections.
    • โœ‚ Remove deprecated {RLM}SyncPermission and {RLM}SyncPermissionChange classes.
    • ๐Ÿ”€ {RLM}SyncPermissionValue has been renamed to just {RLM}SyncPermission. Its userId property has been renamed identity, and its -initWithRealmPath:userID:accessLevel: initializer has been renamed -initWithRealmPath:identity:accessLevel:.
    • โœ‚ Remove deprecated -[RLMSyncUser permissionRealmWithError:] and SyncUser.permissionRealm() APIs. Use the new permissions system.
    • โœ‚ Remove deprecated error RLMSyncErrorBadResponse. Use RLMSyncAuthErrorBadResponse instead.
    • ๐Ÿ”€ The way interactive sync errors (client reset and permission denied) are delivered to the user has been changed. Instead of a block which can be invoked to immediately delete the offending Realm file, an opaque token object of type RLMSyncErrorActionToken will be returned in the error object's userInfo dictionary. This error object can be passed into the new +[RLMSyncSession immediatelyHandleError:] API to delete the files.
    • โœ‚ Remove -[NSError rlmSync_clientResetBlock] and -[NSError rlmSync_deleteRealmBlock] APIs.
    • ๐Ÿ”€ The return types of the SyncError.clientResetInfo() and SyncError.deleteRealmUserInfo() APIs have been changed. They now return RLMSyncErrorActionTokens or SyncError.ActionTokens instead of closures.
    • The (erroneously added) instance property Object.className has been removed.
    • The class methods Object.className(), Object.objectUtilClass(), and the property Object.isInvalidated can no longer be overriden.
    • ๐Ÿ”€ The callback which runs when a sync user login succeeds or fails now runs on the main queue by default, or can be explicitly specified by a new callbackQueue parameter on the {RLM}SyncUser.logIn(...) API.
    • ๐Ÿ“‡ Rename {RLM}NotificationToken.stop() to invalidate() and {RealmCollection,SyncPermissionResults}.addNotificationBlock(_:) to observe(_:) to mirror Foundation's new KVO APIs.
    • The RLMSyncProgress enum has been renamed RLMSyncProgressMode.
    • โœ‚ Remove deprecated {RLM}SyncManager.disableSSLValidation property. Disable SSL validation on a per-Realm basis by setting the enableSSLValidation property on {RLM}SyncConfiguration instead.
    • ๐Ÿ›  Fix empty strings, binary data, and null on the right side of BEGINSWITH, ENDSWITH and CONTAINS operators in predicates to match Foundation's semantics of never matching any strings or data.
    • Swift Object comparison and hashing behavior now works the same way as that of RLMObject (objects are now only considered equatable if their model class defines a primary key).
    • ๐Ÿ›  Fix the way the hash property works on Object when the object model has no primary key.
    • ๐Ÿ›  Fix an issue where if a Swift model class defined non-generic managed properties after generic Realm properties (like List<T>), the schema would be constructed incorrectly. Fixes an issue where creating such models from an array could fail.

    โœจ Enhancements

    • โž• Add Swift Object.isSameObject(as:_) API to perform the same function as the existing Objective-C API -[RLMObject isEqualToObject:].
    • ๐Ÿ”ฆ Expose additional authentication-related errors that might be reported by a Realm Object Server.
    • ๐Ÿ”€ An error handler can now be registered on {RLM}SyncUsers in order to report authentication-related errors that affect the user.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ”€ Sync users are now automatically logged out upon receiving certain types of errors that indicate they are no longer logged into the server. For example, users who are authenticated using third-party credentials will find themselves logged out of the Realm Object Server if the third-party identity service indicates that their credential is no longer valid.
    • โž• Address high CPU usage and hangs in certain cases when processing collection notifications in highly-connected object graphs.
  • v3.0.0-beta.2 Changes

    July 26, 2017

    ๐Ÿ’ฅ Breaking Changes

    • โœ‚ Remove the following deprecated Objective-C APIs: -[RLMArray sortedResultsUsingProperty:ascending:], -[RLMCollection sortedResultsUsingProperty:ascending:], -[RLMResults sortedResultsUsingProperty:ascending:], +[RLMSortDescriptor sortDescriptorWithProperty:ascending:], RLMSortDescriptor.property. These APIs have been superseded by equivalent APIs that take or return key paths instead of property names.
    • โœ‚ Remove the following deprecated Objective-C API: +[RLMRealm migrateRealm:configuration:]. Please use +[RLMRealm performMigrationForConfiguration:error:] instead.
    • โœ‚ Remove the following deprecated Swift APIs: AnyRealmCollection.sorted(byProperty:, ascending:), LinkingObjects.sorted(byProperty:, ascending:), List.sorted(byProperty:, ascending:), Results.sorted(byProperty:, ascending:), SortDescriptor.init(property:, ascending:), SortDescriptor.property. These APIs have been superseded by equivalent APIs that take or return key paths instead of property names.
    • โšก๏ธ The Objective-C and Swift create(_:, value: update:) APIs now correctly nil out nullable properties when updating an existing object when the value argument specifies nil or NSNull for the property value.

    โœจ Enhancements

    • ๐ŸŒฒ It is now possible to create and log in multiple Realm Object Server users with the same identity if they originate from different servers. Note that if the URLs are different aliases for the same authentication server each user will still be treated as separate (e.g. they will have their own copy of each synchronized Realm opened using them). It is highly encouraged that users defined using the access token credential type be logged in with an authentication server URL specified; this parameter will become mandatory in a future version of the SDK.
    • โž• Add -[RLMSyncUser retrieveInfoForUser:identityProvider:completion:] API allowing administrator users to retrieve information about a user based on their provider identity (for example, a username). Requires any edition of the Realm Object Server 1.8.2 or later.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ‘ป Realm no longer throws an "unsupported instruction" exception in some cases when opening a synced Realm asynchronously.
  • v3.0.0-beta Changes

    July 14, 2017

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ”€ Synchronized Realms require a server running Realm Object Server v2.0 or higher.

    โœจ Enhancements

    • โž• Add a new error code to denote 'permission denied' errors when working with synchronized Realms, as well as an accompanying block that can be called to inform the binding that the offending Realm's files should be deleted immediately. This allows recovering from 'permission denied' errors in a more robust manner. See the documentation for RLMSyncErrorPermissionDeniedError for more information.
    • โž• Add -[RLMSyncPermissionValue initWithRealmPath:username:accessLevel:] API allowing permissions to be applied to a user based on their username (usually, an email address). Requires any edition of the Realm Object Server 1.6.0 or later.
    • ๐Ÿ‘Œ Improve performance of creating Swift objects which contain at least one List property.

    ๐Ÿ›  Bugfixes

    • List.description now reports the correct types for nested lists.
    • ๐Ÿ›  Fix unmanaged object initialization when a nested property type returned false from Object.shouldIncludeInDefaultSchema().
    • Don't clear RLMArrays on self-assignment.
  • v2.10.2 Changes

    September 27, 2017

    ๐Ÿ›  Bugfixes

    • The keychain item name used by Realm to manage the encryption keys for sync-related metadata is now set to a per-app name based on the bundle identifier. Keys that were previously stored within the single, shared Realm keychain item will be transparently migrated to the per-application keychain item.
    • ๐Ÿ›  Fix downloading of the Realm core binaries when Xcode's command-line tools are set as the active developer directory for command-line interactions.
    • ๐Ÿ›  Fix a crash that could occur when resolving a ThreadSafeReference to a List whose parent object had since been deleted.
  • v2.10.1 Changes

    September 14, 2017

    Swift binaries are now produced for Swift 3.0, 3.0.1, 3.0.2, 3.1, 3.2 and 4.0.

    โœจ Enhancements

    • 0๏ธโƒฃ Auxiliary files are excluded from backup by default.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix more cases where assigning an RLMArray property to itself would clear the RLMArray.
  • v2.10.0 Changes

    August 21, 2017

    API Breaking Changes

    • None.

    โœจ Enhancements

    • ๐Ÿ”ฆ Expose additional authentication-related errors that might be reported by a Realm Object Server.
    • ๐Ÿ”€ An error handler can now be registered on {RLM}SyncUsers in order to report authentication-related errors that affect the user.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ‘ป Sorting Realm collection types no longer throws an exception on iOS 7.
    • ๐Ÿ”€ Sync users are now automatically logged out upon receiving certain types of errors that indicate they are no longer logged into the server. For example, users who are authenticated using third-party credentials will find themselves logged out of the Realm Object Server if the third-party identity service indicates that their credential is no longer valid.
    • โž• Address high CPU usage and hangs in certain cases when processing collection notifications in highly-connected object graphs.
  • v2.9.1 Changes

    August 01, 2017

    API Breaking Changes

    • None.

    โœจ Enhancements

    • None.

    ๐Ÿ›  Bugfixes

    • The shouldCompactOnLaunch block is no longer invoked if the Realm at that path is already open on other threads.
    • ๐Ÿ›  Fix an assertion failure in collection notifications when changes are made to the schema via sync while the notification block is active.
  • v2.9.0 Changes

    July 26, 2017

    API Breaking Changes

    • None.

    โœจ Enhancements

    • โž• Add a new error code to denote 'permission denied' errors when working with synchronized Realms, as well as an accompanying block that can be called to inform the binding that the offending Realm's files should be deleted immediately. This allows recovering from 'permission denied' errors in a more robust manner. See the documentation for RLMSyncErrorPermissionDeniedError for more information.
    • โž• Add -[RLMSyncPermissionValue initWithRealmPath:username:accessLevel:] API allowing permissions to be applied to a user based on their username (usually, an email address). Requires any edition of the Realm Object Server 1.6.0 or later.
    • ๐Ÿ‘Œ Improve performance of creating Swift objects which contain at least one List property.
    • ๐ŸŒฒ It is now possible to create and log in multiple Realm Object Server users with the same identity if they originate from different servers. Note that if the URLs are different aliases for the same authentication server each user will still be treated as separate (e.g. they will have their own copy of each synchronized Realm opened using them). It is highly encouraged that users defined using the access token credential type be logged in with an authentication server URL specified; this parameter will become mandatory in a future version of the SDK.
    • โž• Add -[RLMSyncUser retrieveInfoForUser:identityProvider:completion:] API allowing administrator users to retrieve information about a user based on their provider identity (for example, a username). Requires any edition of the Realm Object Server 1.8.2 or later.

    ๐Ÿ›  Bugfixes

    • List.description now reports the correct types for nested lists.
    • ๐Ÿ›  Fix unmanaged object initialization when a nested property type returned false from Object.shouldIncludeInDefaultSchema().
    • Don't clear RLMArrays on self-assignment.
  • v2.8.3 Changes

    June 20, 2017

    ๐Ÿ›  Bugfixes

    • โšก๏ธ Properly update RealmOptional properties when adding an object with add(update: true).
    • โž• Add some missing quotes in error messages.
    • ๐Ÿ›  Fix a performance regression when creating objects with primary keys.
  • v2.8.2 Changes

    June 16, 2017

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix an issue where synchronized Realms would eventually disconnect from the remote server if the user object used to define their sync configuration was destroyed.
    • โช Restore support for changing primary keys in migrations (broken in 2.8.0).
    • โช Revert handling of adding objects with nil properties to a Realm to the pre-2.8.0 behavior.