-
Notifications
You must be signed in to change notification settings - Fork 10
Upgrading to SDK v8.x
⚠️ This document relates to deprecated or obsolete SDK versions. For details regarding upgrading to the latest SDK version, consult the main Upgrade Guide.
There are no code changes required to upgrade to v8.3.
Please note that the next major release of the iOS SDK (v9.0) will drop support for iOS 9.
There are no code changes required to upgrade to v8.3.
Please note that the next major release of the iOS SDK (v9.0) will drop support for iOS 9.
All users of Carthage should take note of the updated installation instructions. Now that Carthage 0.37.0 has been released and offers (limited) support for XCFrameworks, you should choose whether to migrate to XCFrameworks (recommended) or remain with traditional universal (fat) frameworks.
The installation instructions now also include a workaround for those Carthage users remaining with universal frameworks on Xcode 12. Cocoapods installation is entirely unaffected by these changes.
The SDK will no longer stream to iProov's EU instance by default. You must now explicitly provide a streaming URL when launching an iProov claim.
v8.0 is a major release and provides new APIs with breaking changes.
v8.0 introduces connection callbacks, which means that the iProov UI is not displayed until the connection to iProov's servers has been established. This means that you can keep the user in your app and provide the appropriate UI until the connection has been established.
You must now implement new the .connecting
and .connected
statuses in the iProov callback. Objective-C users should also implement the relevant blocks.
If you do not wish to implement your own custom UI for connecting and revert to the legacy behavior from v7.5 and earlier, you can opt-out of this new feature by setting options.ui.useLegacyConnectingUI = true
which will continue to show the connecting indication within the iProov SDK itself.
⚠️ NOTE: theuseLegacyConnectingUI
is deprecated, and will be removed in a future version of the SDK. All customers are advised to adopt the new connection callbacks as soon as possible.
In v7.0, the .success
and .failure
cases provided additional contextual information (token
/reason
/feedbackCode
) directly in their associated values:
switch status {
...
case let .success(token):
...
case let .failure(reason, feedbackCode):
...
...
}
In v8.0, the success and failure cases have been changed to allow for further information to be returned, and allow future extensibility for even more values to be returned in the future.
You should be able to easily move from the v7 API (above) to the equivalent v8 API (below) simply as follows:
switch status {
...
case let .success(result):
let token = result.token
...
case let .failure(result):
let reason = result.reason
let feedbackCode = result.feedbackCode
...
...
}
-
streamingError
has been renamed tonetworkError
. -
The
user_timeout
andnetwork_problem
failures are now returned asnetworkError
s for improved consistency.
There is a new option called options.ui.livenessTintColor
. Customers who are using the new Liveness Assurance technology as part of Basic Face Verifier can use this option to set the tint color of the screen during the Liveness Assurance face scan.
Due to the new connection callback statuses, options.ui.loadingTintColor
option has also been deprecated, as this only takes effect when the legacy connecting UI is displayed.
String key names been updated to align with the Android & Web SDKs. There have also been new strings introduced to support Liveness Assurance. Please consult the updated Localizable.strings file and ensure your localization keys and values match.
SwiftyJSON and KeychainAccess dependencies are no longer required. Therefore you can remove these pods from the workaround in your Podfile.
The new workaround is therefore as follows:
post_install do |installer|
installer.pods_project.targets.each do |target|
if ['iProov', 'Socket.IO-Client-Swift', 'Starscream'].include? target.name
target.build_configurations.each do |config|
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end
end