Skip to content

Releases: Kinvey/swift-sdk

3.6.0

17 Jul 18:40
Compare
Choose a tag to compare

Improvements

  • Better reference documentation
  • pull() has now a new (optional) parameter called deltaSetCompletionHandler which is a completion block that returns only the results that have changed during the delta set computation. The regular completionHandler parameter will continue to return all the results (including the unchanged results)
  • New struct Options is introduced to hold custom optional values such as client, clientId, ttl, deltaSet, readPolicy, writePolicy, timeout, clientAppVersion and customRequestProperties. Maybe more to be added in the future.

Bugfixes

  • count() were not translating queries when alias were used
  • Crashing when an error was returned from the backend but with an empty body

Deprecated

  • All methods in the DataStore class that takes a Client instance, ReadPolicy, WritePolicy, deltaSet and timeout values as optional parameters are now deprecated in favor of the Options new struct.

Breaking Changes

  • Client.clientAppVersion and Client.customRequestProperties were removed in favor of Client.options which contains both clientAppVersion and customRequestProperties.

3.5.4

23 Jun 18:36
Compare
Choose a tag to compare

Improvements

Bugfixes

  • User.refresh() was losing authentication
  • Query objects with values containing the character + were causing a wrong URL encoding

Deprecated

  • None

Breaking Changes

  • None

3.5.3

12 Jun 20:51
Compare
Choose a tag to compare

Improvements

  • None

Bugfixes

  • Compilation errors after ObjectMapper 2.2.7 Release

Deprecated

  • None

Breaking Changes

  • None

3.5.2

05 Jun 21:44
Compare
Choose a tag to compare

Improvements

  • Files are now able to have custom properties subclassing the File class and specifying when create your FileStore instance, for example: let fileStore = FileStore<MyFileSubclass>()
  • Push.unRegisterDeviceToken() now returns an error instead of crash if the device token was not found
  • Support for MIC authentication service selection using the clientId parameter when called MIC.urlForLogin() or User.presentMICViewController()

Bugfixes

  • Query using dates were being misconstructed when sent to the backend

Deprecated

  • FileStore.getInstance() in favor of the usage of constructors FileStore<File>()
  • Global constants PersistableIdKey, PersistableAclKey and PersistableMetadataKey in favor of Entity.Key.entityId, Entity.Key.acl and Entity.Key.metadata respectively
  • Metadata.LmtKey, Metadata.EctKey and Metadata.AuthTokenKey in favor of Metadata.Key.lastModifiedTime, Metadata.Key.entityCreationTime and Metadata.Key.authToken respectively

Breaking Changes

  • None

3.5.1

02 May 18:15
Compare
Choose a tag to compare

Improvements

  • None

Bugfixes

  • User.socialIdentity properties were not public
  • User custom type was not properly loaded after a relaunch

Deprecated

  • None

Breaking Changes

  • None

3.5.0

21 Apr 21:49
Compare
Choose a tag to compare

Improvements

  • Client Ping: Client class now have a new method ping() to test if the client was initialized correctly.
  • Group and Aggregation: DataStore.group() is a set of new methods that allows group / aggregation functions. You can write your own reduce function using JavaScript or use pre-defined functions like count, sum, avg (average), min (minimum) and max (maximum).
  • User Refresh: a new method User.refresh() will reload the user's data. Also applies for Client.activeUser which will refresh and persist the new user's data.
  • Result Enumeration: a new pattern for all completionHandlers in the library was introduced. All methods containing completionHandlers has now overloaded versions which returns a Result<SuccessType, FailureType> instance where you can use a switch statement to figure if the call succeed (case .success(let successObject):) or failed (case .failure(let error):)

Bugfixes

  • User.lookup() now returns the correct User type if a custom user type was set.

Deprecated

  • None

Breaking Changes

  • User.destroy(), User.sendEmailConfirmation(), User.resetPassword() and User.forgotUsername() were changed to have the completionHandler block following the Result enumeration pattern described above.

3.4.0

04 Apr 06:48
Compare
Choose a tag to compare

Improvements

  • Support for Swift 3.1 / Xcode 8.3
  • Better support for upload data from an input stream
  • Better performance for DataStore.push() and DataStore.sync()
  • Device token is now deleted on the device after call Push.unRegisterDeviceToken()
  • Added a new Error case for situations when there's some missing configuration in the console

Bugfixes

  • Local query crashing when a field was not found on entity
  • User credentials lost after upgrade to a newer version of the SDK. Versions affected: 3.3.8 and 3.3.9

Deprecated

  • DataStore.removeById() method is now deprecated

3.3.9

11 Mar 00:48
Compare
Choose a tag to compare

Breaking Changes

FileStore.download(_ file: inout File) and his overloaded version where removed. You now should use FileStore.download(_ file: File), so no need to pass the file as a reference (fileStore.download(&file)) anymore

Bugfixes

  • Crash when try to upload a file with a pre-defined fileId
  • Crash when a protocol marked as @objc compatible was used inside of an Entity subclass
  • Warning about pending promises being deallocated during usage of FileStore