Releases: Kinvey/swift-sdk
Releases · Kinvey/swift-sdk
3.6.0
Improvements
- Better reference documentation
pull()
has now a new (optional) parameter calleddeltaSetCompletionHandler
which is a completion block that returns only the results that have changed during the delta set computation. The regularcompletionHandler
parameter will continue to return all the results (including the unchanged results)- New struct
Options
is introduced to hold custom optional values such asclient
,clientId
,ttl
,deltaSet
,readPolicy
,writePolicy
,timeout
,clientAppVersion
andcustomRequestProperties
. 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 aClient
instance,ReadPolicy
,WritePolicy
,deltaSet
andtimeout
values as optional parameters are now deprecated in favor of theOptions
new struct.
Breaking Changes
Client.clientAppVersion
andClient.customRequestProperties
were removed in favor ofClient.options
which contains bothclientAppVersion
andcustomRequestProperties
.
3.5.4
Improvements
- Live Service is now EA (Early Adopter) for our Swift SDK. Please check our Live Service documentation
Bugfixes
User.refresh()
was losing authenticationQuery
objects with values containing the character+
were causing a wrong URL encoding
Deprecated
- None
Breaking Changes
- None
3.5.3
3.5.2
Improvements
- Files are now able to have custom properties subclassing the
File
class and specifying when create yourFileStore
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 calledMIC.urlForLogin()
orUser.presentMICViewController()
Bugfixes
Query
using dates were being misconstructed when sent to the backend
Deprecated
FileStore.getInstance()
in favor of the usage of constructorsFileStore<File>()
- Global constants
PersistableIdKey
,PersistableAclKey
andPersistableMetadataKey
in favor ofEntity.Key.entityId
,Entity.Key.acl
andEntity.Key.metadata
respectively Metadata.LmtKey
,Metadata.EctKey
andMetadata.AuthTokenKey
in favor ofMetadata.Key.lastModifiedTime
,Metadata.Key.entityCreationTime
andMetadata.Key.authToken
respectively
Breaking Changes
- None
3.5.1
3.5.0
Improvements
- Client Ping:
Client
class now have a new methodping()
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 usingJavaScript
or use pre-defined functions likecount
,sum
,avg
(average),min
(minimum) andmax
(maximum). - User Refresh: a new method
User.refresh()
will reload the user's data. Also applies forClient.activeUser
which will refresh and persist the new user's data. - Result Enumeration: a new pattern for all
completionHandler
s in the library was introduced. All methods containingcompletionHandler
s has now overloaded versions which returns aResult<SuccessType, FailureType>
instance where you can use aswitch
statement to figure if the call succeed (case .success(let successObject):
) or failed (case .failure(let error):
)
Bugfixes
User.lookup()
now returns the correctUser
type if a custom user type was set.
Deprecated
- None
Breaking Changes
User.destroy()
,User.sendEmailConfirmation()
,User.resetPassword()
andUser.forgotUsername()
were changed to have thecompletionHandler
block following theResult
enumeration pattern described above.
3.4.0
Improvements
- Support for Swift 3.1 / Xcode 8.3
- Better support for upload data from an input stream
- Better performance for
DataStore.push()
andDataStore.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
and3.3.9
Deprecated
DataStore.removeById()
method is now deprecated
3.3.9
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 anEntity
subclass - Warning about pending promises being deallocated during usage of
FileStore