Minor update.
- Added inline code documentation.
- Updated README.md.
- Made
ResponseError
public.
Major 'breaking' release. Highlights:
- Replaces Swift Combine publishers with Swift Concurrency (async/await) model
- Requires iOS 15+, Swift 5.5+ and Xcode 13+
- Improves performance of OAuth2 authorization flows
- Adds SOSL search convenience method
- Resolves issue #135
- Resolves issue #138
- Updates default Salesforce API version to 54.0 (Spring '22)
- Removes capability to disable automatic user authentication when required. (It's complicated with the new Swift Concurrency and the improved performance mentioned above. If you require this feature, please let me know by creating a new GitHub issue.)
Updated default API version to 52.0 (Summer '21).
Minor release. Updated README.md.
Patch release. Deleted no-longer-used support files.
Patch release. Added documentation to myRecords
method re. OwnerId
field on target type
, and fixed broken link in README.md.
Patch release. Updated README.md, and increased access level of Identity
properties and Limit.used
to public
.
Major 'breaking' release. Requires iOS 14, Swift 5.3, Xcode 12.
- Updated default Salesforce API version to 49.0 (Summer '20).
- Minor updates to README file.
- Made RequestConfig constructor public.
- Updated default Salesforce API version to 48.0 (Spring '20).
Major release. Requires iO3 13, Swift 5.1, Xcode 11.
- Swift Combine framework.
- Swift Package Manager (SPM).
- Removed last dependency (PromiseKit).
Minor release. Updated default Salesforce API version to 44.0 (Winter '19).
Removed dependency on PromiseKit's Foundation extension.
Added Cartfile entry for PromiseKit's Foundation extensions.
Support aggregate query result. Resolves issue issue #88.
Adapt to Winter '19 date format change in identity
JSON response. See release notes.
Resolves issue issue #91.
Support OpenID Connect 'ID token.' Resolves issue issue #92.
Updated podspec 'source_files' attribute to avoid Xcode 10 build errors.
Updated connected app's consumer key in example app.
Added SOSL search example to README, and some inline documentation.
Fixed access to Organization
properties. Was internal
, now public
. Thanks to @joaoamaral for pull request.
- Deferred login (set
options
in function argument to[.dontAuthenticate]
) - Simplifies app configuration (no more need to set URL scheme in plist file)
- Simplifies calling custom endpoints (call
Salesforce.dataTask
with your ownURLRequest
andDecodable
model object) - Simplifies & improves user login experience with iOS 11's new
SFAuthenticationSession
(Apple has already deprecatedSFAuthenticationSession
in the upcoming iOS 12 in favor of the very similarASWebAuthenticationSession
- Swiftly Salesforce will be updated after iOS 12 is released) - New functions to call Salesforce's UI API
- Supports SOSL searching
- Enables full control over authorization URL (useful for Community or custom login flows)
- Works with latest PromiseKit version
- Resolves issue issue #73
- Resolves issue issue #68
- Resolves issue issue #63
- Resolves issue issue #32
Resolves issue #69. Thanks to @hmuronaka for pull request.
Resolves issue #70. Thanks to @hmuronaka for pull request.
Fixed error in identity method's response handler. (Resolves issue #60.)
Change access to ConnectedApp.revoke
method from internal
to public
.
Replace '+' with '%2B' in URLRequest.queryParameters. (Resolves issue #58.) Thanks to @hmuronaka for pull request.
- Clear token from secure storage after revocation (issue #57).
- Fixed error in revocation endpoint URL. (Thanks to @daichi1021 for pull request.)
Fixed bug in Salesorce.apex
and Salesforce.custom
methods so that callers can now set the HTTP body data.
This release contains breaking changes. See README and documentation. Highlights of changes and improvements:
- Incorporated Swift 4's new
Codable
protocol (i.e.Decodable
andEncodable
throughout. This simplifies both Swiftly Salesforce's code and the creation of your own models that represent Salesforce objects. - Simpler and faster to incorporate Swiftly Salesforce in your apps.
- New
Record
type to represent generic Salesforce object records, replacesSObject
from version 5.0.0. If you prefer, you could create your own model objects and use those instead, via the magic of Swift generics and the newCodable
protocol. See the README and example app for samples. - New
Organization
type holds information about the Salesforce "org." Callsalesforce.org( )
to retrieve org information. - References to
redirectURL
replaced withcallbackURL
to be consistent with Salesforce Connected App terminology. - More and better test coverage.
This release contains breaking changes. See README and documentation. Highlights of changes and improvements:
- Incorporated Swift 4's new
Decodable
protocol throughout. This simplifies both Swiftly Salesforce's code and the creation of your own models that represent Salesforce objects. - New
SObject
type to represent a generic Salesforce objects. If you prefer, you can create your own model objects and use those instead, via the magic of Swift generics and the newDecodable
protocol. See the README and example app for samples. - Revamped Error types.
- More and better test coverage.
- Removed Alamofire dependency
- Increased test coverage
- Added Keychain wrapper class
- Removed Locksmith dependency
Support Swift 4
Changed access level of Address
members to explicitly public
(were implicitly internal
)
Fixed misspelling in enum Address.GeocodeAccuracy
(issue #44)
Documentation updates
This release contains breaking changes. See README and documentation. Highlights of changes and improvements:
- Removed the
salesforce
singleton (you could still instantiate your own globalsalesforce
variable, if you like; see example). Salesforce
now instantiated with newConnectedApp
class. See README.- Supports switching among multiple users and securely storing their access & refresh tokens.
Salesforce.apexREST
method renamedSalesforce.apex
, and now returnsPromise<Data>
(instead ofPromise<Any>
).- New
Salesforce.fetchImage
methods to get relatively-small images, such as user thumbnails or Contact photos (issue #33 and issue #35). - New
Address
struct to hold standard, compound address fields, including longitude and latitude (issue #38 and issue #39).
Updated the default Salesforce API version to 40.0 (Summer '17)
Fixes issue #29.
- Updated the default Salesforce API version to 39.0 (Spring '17).
- Added method
Salesforce.describeAll()
to retrieve metadata about all objects defined in the org (issue #28). - Bug fix;
ObjectDescription.keyPrefix
now returns an empty string if the retrieved object metadata value is null. (In the next major releasekeyPrefix
will become an optional string.) (issue #36) ObjectDescription.fields
now returns an empty dictionary if the retrieved metadata has no field-level information, as is the case withSalesforce.describeAll()
. (In the next major release,fields
will become an optional dictionary.)- Bug fix;
Salesforce.limits()
broke with the Salesforce Spring '17 release, which changed the JSON payload returned by the REST API'slimits
resource (issue #37). Model.UserInfo
andModel.QueryResult
now have public initializers (issue #34).
Support for registering with Salesforce notification services. (Thanks to @quintonwall for pull request.)
Support Carthage dependency manager
Updated README
- Added overloaded
Salesforce.retrieve
method to retrieve multiple records in parallel - Added overloaded
Salesforce.query
method to execute multiple SOQL queries in parallel - Added overloaded
Salesforce.describe
method to retrieve metadata about multiple Salesforce objects in parallel - Additional documentation, tests and test coverage
- Added Salesforce.describe( ) method, and corresponding model structs (ObjectDescription, FieldDescription, PicklistValue) for retrieving object metadata. (Closes issue #13.)
- Additional tests and test coverage
Fixed issue #15; removed unneeded id
parameter in Salesforce.insert( )
method
- Updated
LoginDelegate
to accommodate custom login view controllers and flows. Note: the default OAuth2 user-agent flow with the Salesforce-hosted webform is the recommended way to authenticate users; your app shouldn't handle their credentials. Adapted from @hmuronaka's pull request. - Deprecated
LoginDelegate
extension methodhandleRedirectURL(redirectURL: URL)
in favor ofhandleRedirectURL(url: URL)
.
Added file "OAuth2.plist" which is used for testing the framework. If you run the tests, edit the file and insert your own values for the Salesforce access token, refresh token, etc.
(This is a ‘breaking’ change that is not compatible with prior versions)
- Upgrade for Swift 3
- Lots of enhancements to make building native iOS apps on Salesforce even easier - see the README
- Support for custom login view controllers - thanks to @humoronaka. (Note: this feature will not be carried over into version 3.0.0, which is nearly complete as of Oct. 24, 2016, but will be incorporated into a subsequent release.)
- Updated code for Swift 2.3
- Updated Podfile for Xcode 8
- Updated README
- Updated PromiseKit dependency to version 3.2.1+
- Updated SalesforceAPI.DefaultVersion to 37.0
- Replaced deprecated selector string syntax with Swift #selector
- Fixed issue #1 (irrelevant comments)
- Incorporated PromiseKit for asynchronous interaction with Salesforce REST API and OAuth2 endpoints
- Updated SalesforceAPI.DefaultVersion to 36.0
- Added ApexRest to SalesforceAPI enum
- Simplified Alamofire extension
Updated README
Updated README
Updated example files
Initial release