Mobile SDKs revamped
Released on 12 August
Released on 05 August
We have revamped both our iOS and Android SDKs. There are significant changes in both releases that could impact your ReachFive setup, so please read the following carefully.
This announcement was made on the 12 August.
We expect to release these changes into production on approximately the 12 August.
What did we change?
Choose the desired tab for iOS or Android.
Major changes:
-
The SDK mandates a minimum version of iOS
13. -
loginWithPasswordnow takes either anemailor aphoneNumberinstead of ausernameas before. -
We have introduced a new method called
Provider.application(_:didFinishLaunchingWithOptions:)to call at startup to initialize the social providers. -
We now require a new key called
FacebookClientTokento configure Facebook Login. -
The
viewControllerparameter inProvider.login(scope:origin:viewController:)is now mandatory. -
The
viewControllerparameter inProvider.login(scope:origin:viewController:)must also conform to the protocolASWebAuthenticationPresentationContextProvidingwhen usingWebViewProvider. -
Some error messages may have changed.
New features:
-
Login using a webview:
AppDelegate.reachfive().webviewLogin -
WebViewProvidernow usesASWebAuthenticationSessioninstead ofSFSafariViewControllerfor improved security. The associated webview UI is different. -
No need to ask again now to confirm app access for Facebook Login when a user still has a valid Access Token.
Other changes:
-
loginWithPasswordcalls/identity/v1/password/loginnow instead of/oauth/token. -
Updated dependency
Alamofirefrom5.6.1to5.6.2. -
Updated dependency
BrightFuturesfrom8.1.0to8.2.0. -
Updated dependency
CryptoSwiftfrom1.3.8to1.5.1. -
Updated dependency
FBSDKCoreKitfrom9.0.0to14.1.0. -
Updated dependency
FBSDKLoginKitfrom9.0.0to14.1.0. -
Updated dependency
GoogleSignInfrom5.0.2to6.2.2. -
Removed dependencies
EllipticCurveKeyPair,KeychainAccess,PromiseKit,FacebookCore,FacebookLogin.
| See the iOS docs for more details. |
This major releases includes many breaking changes but greatly simplifies the SDK integration overall.
Major changes:
-
Client implementation has been broken down into smaller modules.
-
Client constructor no longer takes an
Activity. -
Client initialization now only fetches client configuration.
-
A separate initialization method (
loadSocialProviders) has been added for social providers configuration. -
The
WebViewProvidersocial login flows now use a Custom Tab. -
Internal login callback no longer opens a custom tab and now silently obtains an authorization code.
-
All errors are now communicated through the
failurecallback channel; AndroidActivityresult codes no longer need to be manually inspected. -
An
ErrorCodeenumeration class documents all ReachFive API and SDK errors. -
The
SuccessWithNoContent<Unit>type has been removed; all success callbacks now only useSuccess<T>orSuccess<Unit>.
New Features:
-
loginWithWebenables SDK integrators to delegate login to another ReachFive first-party identity client such as web page they control. -
onLoginActivityResulthandles all login flow results and automatically calls the appropriate internal completion flow. SDK integrators no longer have to match on request codes themselves. The method ignores any request code that does not concern the SDK. -
SDK integrators can use
ReachFive.resolveResultHandlerto let the SDK automatically wire the appropriate activity result handler (i.e.,onLoginActivityHandleroronAddNewWebAuthnDeviceResult).
Removed methods:
-
onLoginWithWebAuthnResult: result is now automatically handled inonLoginActivityResult -
onSignupWithWebAuthnResult: result is now automatically handled inonLoginActivityResult
Fixes:
-
Social login providers that did not support webviews are now fixed by virtue of using custom tabs.
-
Social login errors have been improved.
-
Activity callback methods no longer throw exceptions when the request code does not concern an SDK flow. Instead, no action is taken and a debug-level log is emitted.
| See the Android docs for more details. |