Releases: parse-community/Parse-Swift
Releases · parse-community/Parse-Swift
4.1.0
Improvements
- Let the OS and developer decide if app tracking authorization is required when using ParseAnalytics. ParseAnalytics can now take any Codable value in its' dimensions instead of just strings. Added a new property "date" to ParseAnalytics. The "at" property will be deprecated in ParseSwift 5.0.0, so developers should switch to "date". ParseAnalytics can now be properly decoded after encoding with a JSONEncoder. This is useful if ParseAnalytics need to be stored locally and sent to the server later (#341), thanks to @cbaker6
4.0.1
4.0.0
New features
- Add the verifyPassword to ParseUser. This method defaults to using POST though POST is not available on the current Parse Server. Change userPost == false to use GET on older Parse Servers (#333), thanks to @cbaker6.
- (Breaking Change) Bump the SPM toolchain from 5.1 to 5.5. This is done to take advantage of features in the latest toolchain. For developers using < Xcode 13 and depending on the Swift SDK through SPM, this will cause a break. You can either upgrade your Xcode or use Cocoapods or Carthage to depend on ParseSwift (#326), thanks to @cbaker6.
- (Breaking Change) Add the ability to merge updated ParseObject's with original objects when using the .mergeable property. To do this, developers need to add an implementation of merge() to respective ParseObject's. The compiler will recommend the new originalData property be added to every ParseObject. If you used ParseObjectMutable in the past, you should remove it as it is now part of ParseObject. In addition, all ParseObject properties should be optional and every object needs to have a default initializer of init(). See the Playgrounds for recommendations on how to define a ParseObject. Look at the PR for details on why this is important when using the SDK (#315), thanks to @cbaker6.
- Add DocC for SDK documentation (#209), thanks to @cbaker6.
Improvements
- (Breaking Change) Make ParseRelation conform to Codable and add methods to make decoded stored ParseRelations "usable". ParseObjects can now contain properties of ParseRelation. In addition, ParseRelations can now be made from ParseObject pointers. For ParseRole, the computed properties: users and roles, are now optional. The queryRoles property has been changed to queryRoles() to improve the handling of thrown errors (#328), thanks to @cbaker6.
- (Breaking Change) Change the following method parameter names: isUsingMongoDB -> usingMongoDB, isIgnoreCustomObjectIdConfig -> ignoringCustomObjectIdConfig, isUsingEQ -> usingEqComparator (#321), thanks to @cbaker6.
- (Breaking Change) Change the following method parameter names: isUsingTransactions -> usingTransactions, isAllowingCustomObjectIds -> allowingCustomObjectIds, isUsingEqualQueryConstraint -> usingEqualQueryConstraint, isMigratingFromObjcSDK -> migratingFromObjcSDK, isDeletingKeychainIfNeeded -> deletingKeychainIfNeeded (#323), thanks to @cbaker6.
Fixes
- Async/await methods that return void would not throw errors received from server (#334), thanks to @cbaker6.
- Always check for ParseError first when decoding responses from the server. Before this fix, this could cause issues depending on how calls are made from the Swift SDK (#332), thanks to @cbaker6.
3.1.2
Fixes
- Allowing building of the Swift SDK for Swift 5.5.0 and 5.5.1 re-enabling builds for Xcode 13.0 and 13.1. Note that async/await functionality is only available for Swift 5.5.2+ and Xcode 13.2+. Developers using Swift <=5.5.1 or Xcode <=13.1 should use completion blocks or publishers (#320), thanks to @cbaker6.
- Move the
var score: Double?
to a protocol namedParseQueryScorable
. When developers want to sort by score using amatchesText
QueryConstraint
, they just conform their ParseObject's to ParseQueryScorable (#319), thanks to @cbaker6.- If you've added the
score
property to yourParseObject
due to upgrading to3.0.0
, you can remove it if you don't need it. If you do needed it, you should conform toParseQueryScorable
;struct GameScore: ParseObject, ParseQueryScorable {
- If you've added the
3.1.1
3.1.0
3.0.0
New features
- Adds equalTo QueryConstraint along with ability to change the SDK default behavior of using $eq QueryConstraint parameter or not (#310), thanks to @cbaker6.
- Adds isNull and isNotNull QueryConstraint along with the ability set/forceSet null using ParseOperation (#308), thanks to Corey Baker.
- Adds auth support for GitHub, Google, and LinkedIn (#307), thanks to @cbaker6.
- (Breaking Change) Adds options to matchesText QueryConstraint along with the ability to see matching score. The compiler should recommend the new score property to all ParseObjects (#306), thanks to @cbaker6.
- Changes you will need to make:
- Add
var score: Double?
to allParseObject
's
- Add
- Changes you will need to make:
- Adds withCount query (#306), thanks to @cbaker6.
Improvements
- (Breaking Change) Change boolean configuration parameters to match Swift conventions. The compilor should help with name changes (#311), thanks to @cbaker6.
- Changes you will need to make to your ParseSwift initialization/configuration (you may need to "clean" your build folder after these changes):
deleteKeychainIfNeeded
->isDeletingKeychainIfNeeded
useTransactions
->isUsingTransactions
allowCustomObjectId
->isAllowingCustomObjectIds
- Changes you will need to make to your ParseSwift initialization/configuration (you may need to "clean" your build folder after these changes):
- Improve QueryWhere by making at a set of QueryConstraint's instead of any array. This dedupes the same constraint when encoding the query; improving the encoding speed when the same constraints are added (#308), thanks to @cbaker6.
2.5.1
2.5.0
New features
- Added create(), replace(), update(), createAll(), replaceAll(), and updateAll() to ParseObjects. Currently, update() and updateAll() are unavaivalble due to limitations of PATCH on the Parse Server (#299), thanks to @cbaker6.
- Added convenience methods to convert ParseObject's to Pointer's for QueryConstraint's: !=, containedIn, notContainedIn, containedBy, containsAll (#298), thanks to @cbaker6.
2.4.0
New features
- Added additional methods to ParseRelation to make it easier to create and query relations (#294), thanks to @cbaker6.
- Enable async/await for iOS13, tvOS13, watchOS6, and macOS10_15. All async/await methods are MainActor's. Requires Xcode 13.2 or above to use async/await. Not compatible with Xcode 13.0/1, will need to upgrade to 13.2+. Still works with Xcode 11/12 (#278), thanks to @cbaker6 .
Fixes