Releases: iProov/ios
v7.2.2
v7.2.2 fixes a bug where iProov would not launch correctly from scene-based apps (introduced in iOS 13).
v7.2.1
v7.2.1 is a bugfix update to v7.2.0 released last month.
🐞 Bugfixes
- Fixed a bug where the iProov SDK would also dismiss the parent view controller after having been presented from a modal view controller.
- Fixed a bug where the yaw would not be correctly reported when using pose control on devices running iOS 13.
- Fixes a bug where refusal to grant camera permissions would not be correctly reported as an error.
- Fixes a bug where refusal to grant camera permissions would result in general
cameraError
with the string "Unsupported device", rather thancameraPermissionDenied
. - Fixes an issue where Socket.IO timeouts could result in a malformed claim rather than correctly returning an error.
🔨 Other minor changes
- Streaming URLs are now treated as having an implicit
https://
prefix. - Updated Socket.IO-Client-Swift to v15.2.0
- Updated KeychainAccess to v4.1.0
v7.2.0
v7.2.0 is the latest update to the v7 ("nextgen") SDK. There are a number of important optimizations and API simplifications in this update, which also now fully enables module stability both for the iProov SDK and its dependencies.
🧰Module stability - Whilst module stability was previously listed as included in SDK v7.1.0, due to an issue with the build process it did not work properly. v7.2.0 now fully enables module stability and also documents the necessary workarounds for Cocoapods & Carthage to enable module stability for transitive dependencies. NOTE: This requires specific changes to your Podfile/Carthage build process, so please see the README for further details.
🇺🇳New localization logic - The localization logic has been overhauled. The options.ui.locale
option to force a given locale has been removed. Instead, you should simply add the necessary Localizable.strings files to your app for the locales you wish to support. As a result of this responsibility shift, all non-English translations have been removed from the SDK. If you wish to override all strings, simply add a Localizable.strings for the "Base" locale. If you are embedding iProov into your own SDK for redistribution to customers, you can make use of the new options.ui.stringsBundle
setting, which allows you to specify a custom bundle to use for loading strings.
🖋Simplification of custom fonts - The API for changing fonts has been simplified. Instead of regularFont
and boldFont
, there is now a single option named font
. If you are using a custom font supplied with your app, you no longer need to specify it in your options.ui.fonts
, however you must add it to your app's Info.plist instead.
🧠Memory management improvements - The SDK is now more efficient in terms of memory usage and ensures resources are properly cleared away when the iProov capture completes.
🔌 Removal of the network transport option - The network.transport
option which was introduced in 7.1.0 has been removed due to a security issue identified in Socket.IO where certificate pinning is not applied to non-websocket connections. This will only impact integrations where the network.transport
option has been explicitly set to a value other than .webSocket
.
🗜Smaller SDK size - Improvements in the build process and removal of non-English translations have allowed us to reduce the size of the framework binary.
v7.1.0
v7.1.0 is a minor update to the v7.0.0 next-generation SDK launched in July:
🌍 Additional network configurability - You can now specify path
, timeout
and transport
(websockets/polling/auto) for video streaming. See the documentation for further details.
🗜 Network compression - Compression is now enabled for all client-server traffic which should result in faster performance, especially in poor-connectivity environments.
🇺🇳 Improved localization support - We have now improved the string localization/customisation support. It is now possible to localize the iProov SDK into multiple languages from your app. We have a full guide to localization available on our Wiki.
🐛 Minor bugfixes/tweaks - Fixed the APIs for Objective-C support; fixed an issue where vibration would be disabled for iOS 10+ devices without a Taptic Engine; improvements to default lighting model; improved support for 2019 iOS devices.
v7.0.0
This production release incorporates all the changes from 7.0.0-beta1, 7.0.0-beta2 & 7.0.0-beta3:
🔌 The streaming process is now asynchronous - Previously, the iProov SDK controlled the UI whilst streaming, and then provided a result back to your app once the entire process was completed. v7 now hands back control to your app after the screen flashing, you can provide your own streaming progress UI or allow the user to continue with other activities whilst the capture streams in the background.
🕯 Overhauled lighting model - v7 introduces our next-generation evolutionary and adaptive lighting model. This means iProov will now perform better in a wider range of environmental lighting conditions and provide more useful user feedback.
🤠 Additional filter options are now available - Along with the classic canny visual filter, there is now a new default “shaded” feature which adds a hint of colour, as well as a “vibrant” option which provides a full-colour more detailed visual effect.
🧭 Pose control - It is now possible to set maximum roll/pitch/yaw values to obtain front-on “selfie” images from the SDK to enable the use of the iProov image in an interchangeable format for other face matching use cases.
🎨 Greater customisation options - It is now possible to specify a title whilst iProoving, and to pass a custom presentation delegate to control how the iProov view controller is presented and dismissed in more complex UI journeys.
🖌 UI improvements - Following user feedback there is now a vertical scan-line which sweeps up the screen whilst iProoving. When using auto-start, the 3 second numeric countdown has been replaced with a 2 second progress bar along the bottom. The UI has been updated for consistency with our nextgen Android & HTML5 clients.
🛠 Simplified API surface - Previously there were 6 different ways to launch iProov, all of which have now been replaced with IProov.launch()
.
🗑 Legacy features have been removed - Privacy policy and instructions UI has now been removed from the SDK. The functionality obtain tokens has also been removed from within the SDK (which should never have been used in production anyway) and is instead now provided by the iOS API Client. Push and URL claims are no longer supported directly within the SDK and should instead be implemented within your app.
✂️ Third-party dependencies have been reduced - As a result of removing the legacy features, it has been possible to remove Alamofire, AlamofireImage, GPUImage & MBProgressHUD as dependencies, resulting in smaller SDK size. A lightweight fork of GPUImage2 is included, bundled-into the SDK.
🕷 Bugfixes - The main thread checker warning from GPUImage has been fixed, along with various other minor issues and performance optimisations.
🧹 Many other minor improvements - Optimisations for the iPhone X, Xs & Xs Max, haptic feedback on supported devices, refactored Options
API for clarity and consistency, improvements to localisation, and use of Vision Framework on iOS 11+ for more accurate face detection.
v7.0.0-beta3
v7.0.0-beta3 makes a few small tweaks to beta2 as we approach the release of v7.0.0 to production (planned for the end of this week), based on internal and customer feedback.
Changes since v7.0.0-beta2
-
Added support for
presentationDelegate
toOptions.UI
- it is now possible to set a custom delegate to handle the presentation & dismissal of the iProov view controller. This means that you now have control over how iProov's view controller is displayed, and opens up a great deal of flexibility (for example, presenting iProov within aUINavigationController
flow). See this section of the README for more information and examples. -
Added new
title
property toOptions.UI
- you can now pass a custom title string to be displayed at the top of the iProov view controller, to replace the default iProov-generated title. As a result of this, themessageHidden
property has now been removed (you can simply pass empty string (""
) totitle
to have no title at all). See the Options section of the README for more information and examples. -
UI changes - the logo image has now been moved to the right-hand side, and the close button has been moved to the left-hand side.
-
Upgraded Socket.IO to 15.1.0 - we have updated to the latest version of socket.io-client-swift.
v7.0.0-beta2
v7.0.0-beta2 builds upon the progress made in beta1 by adding the remaining functionality required for the next-generation SDK platform, and further refines and optimises the improvements in beta1.
Barring any showstoppers, we anticipate this to be the final beta before v7.0.0 production release.
Major changes since v7.0.0-beta1
-
Lighting model is now enabled. The next-generation evolutionary and adaptive lighting model has now been integrated and enabled. This means iProov will now perform better in a wider range of environmental lighting conditions and provide more useful feedback to the user about whether they are likely to be able to successfully iProov in particularly bright environments. IMPORTANT: Please note that at this the lighting model is still undergoing training and will be refined further over time.
-
New filters. It is now possible to customise the video filter which is applied to the face. The new default is called
.shaded
and applies a light level of shading with more detail to the user's face. Other options include.classic
(which reverts to the original monochromatic design pre-v7.0.0-beta2) and.vibrant
which dials up the colour vibrancy to the max! See the README for additional details. -
Introducing iOS API Client. The Sample Code has now been removed from the SDK repo and has been moved to its own separate framework which can be found here.
Minor changes since v7.0.0-beta1
-
Haptic feedback. Rather than the phone vibrating to provide user feedback, on iOS devices with the Taptic Engine, the device will now more gracefully "tap" when the face is found and at the start of flashing.
-
Refactor to
Options
. TheOptions
API has been updated for additional clarity and consistency. See the README for additional details. -
Misc other improvements. Improvements to localisation and error handling, minor improvements to the UI for aligning the face,
v7.0.0-beta1
Main changes
-
Breaking API changes. Previously there were 6 different ways to launch iProov, which have now all been replaced with
IProov.launch()
. -
The streaming process is now asynchronous. Previously, the iProov SDK controlled the UI whilst streaming, and then provided a result back to your app once the entire process was completed. v7 now hands back control to your app after the screen flashing, you can provide your own streaming progress UI or allow the user to continue with other activities whilst the capture streams in the background. This required an overhaul of the public API.
-
There is no built-in UI for streaming progress. This is part of making the SDK asynchronous (see above). You should now provide your own UI for streaming progress (if desired).
-
Push & URL claims are no longer supported as distinct launch methods. Just iProov against a token obtained from a push notification/URL as normal, and implement this behaviour (if required) in your own app.
-
The SDK no longer has fetching a token as built-in functionality. Prior to v7 of the SDK it was possible to launch iProov with only a service provider, this functionality has been removed, and you should obtain a token through a secure server-to-server call from your back-end to iProov. For local development purposes, you can obtain a token using the demo API client in the the Waterloo Bank sample code.
-
Privacy policy & instructions are no longer part of the SDK. You should ensure you obtain suitable user consent within your app for iProov, and suitable instructions are provided to the user prior to iProoving. Contact us for further details on this.
Other changes
- Alamofire, AlamofireImage & MBProgressHUD are removed as dependencies.
- GPUImage no longer a standalone dependency, a lightweight fork of GPUImage2 is now bundled-in.
- Optimized for iPhone X, Xs & Xs Max.
- Overhauled, more robust lighting model (to follow in future beta).
- Vertical scan-line whilst iProoving.
- The 3 second auto-start countdown has been replaced with a 2 second progress bar.
iProovConfig
has been renamed toOptions
.- Fixes main thread warnings from GPUImage.