All notable changes to the Moneytree Link iOS SDK will be documented in this file.
- Added Privacy Manifests to each SDK module, per Apple's requirements for Spring 2024
- No changes to the SDK.
- Made corrections to text in our sample application, "AwesomeApp."
- No changes to the SDK.
- Made corrections to text in our sample application, "AwesomeApp."
Fixed an issue that generated network warning logs when fetching a token.
This version fixes an issue where exiting the Vault while using a LINK Kit session would not update the LINK Kit screen.
We have introduced a new authentication configuration parameter that will allow you to choose your authentication method (Authentication, Passwordless, Single Sign On) when the Moneytree authentication web page shows. This configuration does not guarantee that the selected mode will be the one presented as the feature relies on the configuration of the client ID provided to you.
If you do not provide the new configuration, the default order of available methods configured in you client ID will be used.
For more on the feature and how it works, please refer to Choosing your Authentication method.
MTLAuthenticationMethod
MTLConfiguration.authenticationMethod
MTLinkAuthOptions
- Please use MTLAuthenticationOptions instead, which supports new features, including setting your authentication method.
MTLAuthenticationOptions.options(mode:allowModeChange:region:email:forceLogout:)
MTLAuthenticationOptions.options(mode:allowModeChange:regionType:email:forceLogout:)
Please use MTLAuthenticationOptions.options(mode:allowModeChange:email:forceLogout:)
instead. Setting the region is no longer necessary.
- Added additional scope, MTLClientScopeRequestRefresh, to LINK Kit.
- Improved handling of app revocation for LINK Kit. If an end user has revoked authorization for your application, instead of returning an error, LINK Kit will automatically give the user an opportunity to re-authenticate and re-authorize. This reduces the need for error handling for LINK Kit implementations.
- Code Grant without PKCE is not supported anymore. It will be removed in the next major version. Please see the migration guide at https://docs.link.getmoneytree.com/docs/migrate-auth-to-pkce
MTLinkClient -authorizeFrom:options:animated:completion:
MTLinkClient -onboardFrom:email:animated:completion:
MTAPI -sendRequest:
MTAPI -sendRequestForSwift:
MTLinkClient -authorizeUsingPkceFrom:options:animated:completion:
MTLinkClient -authorizeUsingCodeGrantFrom:options:animated:completion:
MTLinkClient -onboardFrom:authorizationType:email:state:region:animated:completion:
MTAPI -sendAuthenticatedRequest:
MTAPI -sendAuthenticatedRequestForSwift:
- Remove unnecessary Core Data model file from sample app.
- Fix an issue where passwordless features would not be enabled for applications built with Xcode 13.
- Support upgrading from Issho Tsucho (SDKs v4, v5) to LINK Kit without user needing to log in again. It will only ask for the new consent scopes required.
- Small improvements to documentation and sample app.
- Support running the sample app with Xcode 13.
- Cleaned up some unnecessary files and configuration from the sample app.
- Improved documentation around Settings feature, fixed broken documentation link.
- Fixes an issue with token storage when using LINK API.
- Fixes an issue with OAuth including unnecessary parameters.
- Fixes an issue with token storage when migrating from an earlier version of the SDK.
- Discontinued unused Cocoapods distribution.
- Improved documentation
- Renamed "Magic Link" feature to "Login Link"
MTLinkClient -requestForLoginLinkForEmail:to:completion
MTLinkClient -requestForMagicLinkForEmail:to:completion
The MTLinkClientError
enum is now of type NSInteger
, rather than NSUInteger
, to match the standard convention of error codes.
- Discontinued the
MoneytreeIntelligence
framework. This has no impact on clients who were not using the framework.
- Please use Xcode 12.0 or above.
- The SDK is now packaged using
xcframework
. It is no longer necessary to strip framework architectures built for the simulator from the SDK. - The SDK is now distributed through
Swift Package Manager
andCocoapods
. Please refer to the README file for the updated integration guide. - Discontinued the
MoneytreeIsshoTsucho
framework in favor of a new framework,MoneytreeLINKKit
. The classMTIsshoTsucho
has similarly been renamed toMTLinkKit
.
- Removed
openVaultFromViewController:animated:completion:
in the MTLinkClient.- Please call
openVaultFromViewController:animated:email:completion:
instead.
- Please call
- Removed
openServicesFromViewController:animated:options:completion:
in the MTLinkClient.- Please call
openServicesFromViewController:animated:email:options: completion:
instead.
- Please call
- Removed
connectServiceFromViewController:animated:entityKey:completion:
in the MTLinkClient.- Please call
connectServiceFromViewController:animated:email:entityKey:completion:
instead.
- Please call
- Removed
serviceSettingsFromViewController:animated:credentialId:completion:
in the MTLinkClient.- Please call
serviceSettingsFromViewController:animated:email:credentialId:completion:
instead.
- Please call
- Removed
openCustomerSupportFromViewController:animated:completion:
in the MTLinkClient.- Please call
openCustomerSupportFromViewController:animated:email:completion:
instead.
- Please call
- Removed
isTestEnvironment
inMTLConfiguration
.- Please use
environment
inMTLConfiguration
instead.
- Please use
- Removed
hasAccessToken
in the MTLinkClient.- Please use
isLoggedIn
instead.
- Please use
- Removed
isTestEnvironment
in the MTLinkClient.- Please use
currentEnvironment
instead.
- Please use
- Removed
makeViewControllerWithCompletion:
from MTLinkKit. (Formerly MTIsshoTsucho.)- Please use
makeLinkKitViewController:
instead.
- Please use
- Added support for our new product, LINK Kit, which replaces Issho Tsucho. Please refer to the LINK Kit documentation.
- Added additional
MTLClientScope
s, listed here:- MTLClientScopeGuestRead
- MTLClientScopeAccountsRead
- MTLClientScopeTransactionsRead
- MTLClientScopeTransactionsWrite
- MTLClientScopeCategoriesRead
- MTLClientScopeInvestmentAccountsRead
- MTLClientScopeInvestmentTransactionsRead
- MTLClientScopeRequestRefresh
- MTLClientScopePointsRead
- MTLClientScopePointTransactionsRead
- MTLClientScopeNotificationsRead
- Added Onboarding and Magic Link features to simplify the sign up and login process.
- Fix crash on
openServices(viewController:animated:email:options:completion)
whereoptions
value contains characters that are not URL safe.
- Added
MTLinkClientDelegate
to notify the client app about SDK internal state changes (vault closed event only for now, more to come) - Added email pre-fill capability when opening the vault
- Added
openCustomerSupport()
to open Vault page and trigger Customer Support - Added
openServices()
to show the list of services on Vault - Added
connectService()
to open the Connect Service page for a specified service on Vault. - Added
serviceSettings()
to open the service Connection Settings page on Vault
- Bug fixes and performance improvements
- Show renewed Vault page when calling
openVault
- Show renewed Account settings page when calling
openSettings
- Changed the type of
completion
inopenVaultFromViewController:animated:completion:
fromMTLinkClientCredentialFetchCompletionBlock
toMTLinkCompletionBlock
. In case theaccess token
is needed, please callgetTokenAndRefreshAsNeeded
. - Changed the behavior of the completion handler of
openVaultFromViewController:animated:completion:
. It now triggers when the vault isopened
rather thanclosed
. Please utilise MTLinkClientDelegate if your application needs to be notified when the vault is closed. - A login state at the new Account Settings page depends on cookies Safari has. So guests might see login screen when Safari doesn't have a valid session cookie.
- Use
MTLAuthenticationOptions
instead ofMTLinkAuthOptions
. This class adds support for:- Pre-selecting a user's country
- Disabling the button to switch between Login and Sign Up
- Handle login or signup email correctly
- Sign up page is shown when
signup = true
- Login page back button shows correct URL
- Supports prefilling email for login or signup using
MTLinkAuthOptions
- Connect Institution API is removed
- Release skipped due to technical issues.
- Supported Authorization code grant flow.
- SDK must be initialized using
MTLinkClient.clientWithConfiguration
MTLinkClient.clientWithConfiguration
must be called only once in a session.- Use
MTLinkClient.sharedClient
afterwards
MTLinkClient.sharedClient.isLoggedIn
only checks if the login session exists. It doesn't guarantee that the guest has successfully authorized.MTLinkClient.sharedClient.delegate
is no longer available.MTLinkClient.sharedClient.datasource
is no longer available.MTLinkClient.sharedClient.removeAllTokens
only removes all tokens from the Keychain that are stored by the SDK. It no longer deregisters the push notification token. Please deregister the push token before callingremoveAllTokens
usingMTLinkClient.sharedClient.api
.- Since
MTLinkClient.sharedClient.delegate
is no longer available, Clients should always check login status inside closures, which are always called when Safari is dismissed. This is because the guest might logout while Safari is open.
MTLinkClient.shared.openVault(from: self, animated: true) { _, _ in
if MTLinkClient.shared.isLoggedIn == false {
// Show logout state
}
}
MTLinkClient.shared.openSettings(from: self, animated: true) { _ in
if MTLinkClient.shared.isLoggedIn == false {
// Show logout state
}
}