Skip to content
This repository has been archived by the owner on Feb 13, 2025. It is now read-only.

Releases: Kinvey/swift-sdk

3.18.1

23 Jul 20:04
Compare
Choose a tag to compare

Improvements

  • None

Bugfixes

  • Bugfix to persist Swift.Codable in cache (#309)
  • Bugfix for cascade deletes during updates (#306)

Deprecated

  • None

Breaking Changes

  • P2P Live Stream is not support any more (#307)

3.18.0

12 Jul 17:58
Compare
Choose a tag to compare

Improvements

Bugfixes

  • Fixed memory leak in DataStore.removeAll() (#304)

Deprecated

  • ObjectMapper is now deprecated in favor of Swift.Codable

Breaking Changes

  • Entity.CodingKeys renamed to Entity.EntityCodingKeys to avoid confusions when subclassing Entity
  • DataStore<MyEntity>.collection() now can throw errors, so a try is now required, for example: try DataStore<MyEntity>.collection()
  • Options() constructor now can throw erros, so a try is now required, for example: try Options(timeout: 120)
  • Custom types used in CustomEndpoint calls now requires to provide implement the JSONDecodable protocol

3.17.1

26 Jun 22:45
Compare
Choose a tag to compare

Improvements

  • Returning support for tvOS on CocoaPods (#299)
  • New Error Kinvey.Error.blRuntimeError to handle BL runtime errors (#301)

Bugfixes

  • None

Deprecated

  • Client.ping(completionHandler:)
  • Push.unRegisterDeviceToken(_:)

Breaking Changes

  • None

3.17.0

15 Jun 00:39
Compare
Choose a tag to compare

Improvements

  • Better code coverage (#297)

Bugfixes

  • None

Deprecated

  • Client.initialize(appKey:appSecret:accessGroup:apiHostName:authHostName:encrypted:schema:completionHandler:)
  • Client.initialize(appKey:appSecret:accessGroup:apiHostName:authHostName:encryptionKey:schema:completionHandler:)
  • CustomEndpoint.CompletionHandler
  • CustomEndpoint.execute(_:params:client:completionHandler:)
  • DataStore.pull(_:deltaSetCompletionHandler:deltaSet:completionHandler:)
  • DataStore.purge(_:completionHandler:)
  • DataStore.push(timeout:completionHandler:)
  • DataStore.sync(_:deltaSetCompletionHandler:deltaSet:completionHandler:)
  • Entity.Key.acl
  • Entity.Key.entityId
  • Entity.Key.metadata
  • FileStore.download(_:storeType:ttl:completionHandler:)
  • FileStore.download(_:ttl:completionHandler:)
  • FileStore.find(_:ttl:completionHandler:)
  • FileStore.refresh(_:ttl:completionHandler:)
  • FileStore.remove(_:completionHandler:)
  • FileStore.upload(_:data:ttl:completionHandler:)
  • FileStore.upload(_:image:imageRepresentation:ttl:completionHandler:)
  • FileStore.upload(_:path:ttl:completionHandler:)
  • FileStore.upload(_:stream:ttl:completionHandler:)
  • Metadata.Key.authtoken
  • Metadata.Key.entityCreationTime
  • Metadata.Key.lastModifiedTime
  • User.PersistableUsernameKey
  • User.changePassword(newPassword:completionHandler:)
  • User.exists(username:client:completionHandler:)
  • User.forgotUsername(email:client:completionHandler:)
  • User.get(userId:client:completionHandler:)
  • User.login(authSource:_:createIfNotExists:authServiceId:client:completionHandler:)
  • User.lookup(_:completionHandler:)
  • User.resetPassword(usernameOrEmail:client:completionHandler:)
  • User.save(newPassword:completionHandler:)
  • User.sendEmailConfirmation(forUsername:client:completionHandler:)
  • User.signup(username:password:user:client:completionHandler:)

Breaking Changes

  • Client.initialize(appKey:appSecret:accessGroup:apiHostName:authHostName:encrypted:schemaVersion:migrationHandler:)
  • Client.initialize(appKey:appSecret:accessGroup:apiHostName:authHostName:encryptionKey:schemaVersion:migrationHandler:)
  • Client.timeoutInterval
  • DataStore.collection(_:deltaSet:autoPagination:client:tag:validationStrategy:)
  • DataStore.count(_:readPolicy:completionHandler:)
  • DataStore.find(_:deltaSet:readPolicy:completionHandler:)
  • DataStore.find(_:readPolicy:completionHandler:)
  • DataStore.find(byId:readPolicy:completionHandler:)
  • DataStore.getInstance(_:deltaSet:client:tag:validationStrategy:)
  • DataStore.group(count:countType:condition:readPolicy:completionHandler:)
  • DataStore.group(keys:avg:avgType:condition:readPolicy:completionHandler:)
  • DataStore.group(keys:initialObject:reduceJSFunction:condition:readPolicy:completionHandler:)
  • DataStore.group(keys:max:maxType:condition:readPolicy:completionHandler:)
  • DataStore.group(keys:min:minType:condition:readPolicy:completionHandler:)
  • DataStore.group(keys:sum:sumType:condition:readPolicy:completionHandler:)
  • DataStore.pull(_:deltaSet:deltaSetCompletionHandler:completionHandler:)
  • DataStore.remove(_:writePolicy:completionHandler:)
  • DataStore.remove(byId:writePolicy:completionHandler:)
  • DataStore.remove(byIds:writePolicy:completionHandler:)
  • DataStore.removeAll(_:completionHandler:)
  • DataStore.removeById(_:writePolicy:completionHandler:)
  • DataStore.save(_:writePolicy:completionHandler:)
  • FileStore.getInstance(client:)
  • FileStore.getInstance(fileType:client:)
  • Metadata.AuthTokenKey
  • Metadata.EctKey
  • Metadata.LmtKey
  • Options.init(_:)
  • User.destroy(userId:hard:client:completionHandler:)
  • User.find(query:client:completionHandler:)
  • User.login(redirectURI:micURL:authServiceId:client:)
  • User.presentMICViewController(redirectURI:timeout:forceUIWebView:authServiceId:client:completionHandler:)
  • User.resetPassword(email:client:completionHandler:)
  • User.resetPassword(username:client:completionHandler:)

3.16.0

01 Jun 00:28
Compare
Choose a tag to compare

Improvements

  • MIC support for the Resource Owner Credentials Grant flow (#290)
  • Outdated compiler warnings removed (#291)

Bugfixes

  • Use autopaging when Delta Sync is not available (#289)
  • Fix inconsistencies when Delta Sync is enabled and an autopaging request fails (#292)
  • Bugfix: Fix inconsistencies when Delta Sync is enabled and fields is used in the query (#293)
  • Bugfix: Correctly handle OAuth MIC errors in a returned redirect URI (#294)

Deprecated

  • User.login(redirectURI:username:password:). Use User.login(username:password:provider:options:completionHandler:) instead

Breaking Changes

  • None

3.15.0

15 May 22:22
Compare
Choose a tag to compare

Improvements

  • X-Kinvey-Device-Info is a new header that includes more information about the device (#282)
  • Upgrading PromiseKit to version 6 (#284)
  • The client-side Delta Set feature has been replaced by a server-side implementation called Delta Sync that offers better performance and scalability (#261, #286, #287)
  • Default log level is now .warning (#283)

Bugfixes

  • Make the ValidationStrategy work as intended (#285)
  • Canceling DataStore.find() requests not working in some situations (#288)

Deprecated

  • None

Breaking Changes

  • None

3.14.0

13 Apr 23:15
Compare
Choose a tag to compare

Improvements

  • Send scope parameter to all MIC versions (#273)
  • Thread-safe reference observer (#275)
let person: Person = <#...#>
let notificationToken = person.observe { (objectChange: Kinvey.ObjectChange<Person>) in
    switch objectChange {
    case .change(let person):
        print("person object changed")
    case .deleted:
        print("person object deleted")
    case .error(let error):
        print("\(error)")
    }
}

let dataStore = DataStore<Person>.collection(.sync)
let notificationToken = dataStore.observe {
    switch $0 {
        case .initial(let results):
            print("initial results")
        case .update(let results, let deletions, let insertions, let modifications):
            print("dataStore changed")
        case .error(let error):
            print("\(error)")
    }
}
  • Allow usage of authServiceID for MIC calls (#277)
  • User and Entity now conforms to Hashable and Equatable (#279)

Bugfixes

  • DataStore.removeAll() request was wrong (#274)
  • Queries were not translated correctly for non-entity classes, like Acl for example (#278)
  • Live Service messages not coming with strict permissions (#280)

Deprecated

  • None

Breaking Changes

  • None

3.13.0

15 Mar 19:13
Compare
Choose a tag to compare

Improvements

  • DataStore instances are not cached anymore allowing multiple configurations for the same DataStore (#272)
  • HTTP header User-Agent now includes the Swift version (#270)
  • Client instances can now be created using instanceID (#267)
Kinvey.sharedClient.initialize(appKey: "myAppKey", appSecret: "myAppSecret", instanceId: "my-instance-id") {
    switch $0 {
        case .success(let user):
            print("\(user?.userId ?? "nil")")
        case .failure(let error):
            print("\(error)")
    }
}

Bugfixes

  • Memory consumption fixed for DataStore<T>.find() calls (#268)
  • FileStore now returns the proper result types for sync wait calls (#266)
  • User lockdowns now is fully supported automatically logging out users in lockdown state (#265)

Deprecated

  • None

Breaking Changes

  • Client.timeout is now a shortcut for Client.options.timeout (#271)
  • Default MIC API Version is now v3 (#269)

3.12.2

12 Feb 20:02
Compare
Choose a tag to compare

Improvements

  • Adding Options for Client (#264)

Bugfixes

  • Bugfix for property mapping in nested objects (#260)
  • Bugfix removing the internal usage of Thread.threadDictionary to avoid memory leaks (#263)

Deprecated

  • None

Breaking Changes

  • None

3.12.1

24 Jan 20:45
Compare
Choose a tag to compare

Improvements

  • None

Bugfixes

  • Memory leak fixed around object mapping. (#262)

Deprecated

  • None

Breaking Changes

  • None