Skip to content

Upgrading to v9.x

richardsimongreen edited this page Sep 27, 2023 · 8 revisions

There have been a number of breaking changes in this 9.0.0 release. Please read through this section to understand those changes.

Updating Options

Options has changed from a data class to a class. This makes it easier for us to add new features in a non-breaking way between major releases. Thus, in version 9.x you will need to change to using an empty constructor (e.g. Options()) and assign top level values using dot-field assignments instead.

Spelling alterations to the API

The following U.S. English naming conventions have been adopted, changing the API:

  • IProovCallbackLauncher.onCancelled() becomes IProovCallbackLauncher.onCanceled()
  • IProov.Canceller becomes IProov.Canceler
  • IProov.IProovState.Cancelled(val canceller: Canceller) becomes IProov.IProovState.Canceled(val canceler: Canceler)

Moved to Subject Public Key Info (SPKI) for SSL Certificate Pinning

Previously, the certificates Option was a list of either certificates or resources containing certificates. In 9.x, this has changed to a list of SPKIs of certificates, which significantly improves the usefulness and flexibility of certificate pinning. If you were using certificate pinning before then please change to providing the much shorter SPKI strings instead of the whole certificates, otherwise, you do not have to worry about this change at all.

Failures changed to Errors

From 9.x, the two Failure codes "user_timeout" and "not_supported" will be received as Errors as ServerException, since they both represent an incomplete scan, which is more suited to Errors.

New UX/UI for GPA

There is a new UX/UI animation for GPA: the Options.genuinePresenceAssurance.readyOvalStrokeColor no longer appears as a full ring at "ready" but progresses as a user goes through the claim, to communicate how much they have left to complete.

New UX/UI for LA

Note that when the natural filter (clear/blur) is applied to LA, then the surroundColor will always be used as opaque on the new background crop.

New Failure Codes for LA

Liveness Assurance (LA) now supports the same new failure codes as GPA with one addition:

  • multiple_faces has been added as a new Failure Code in LA (as enum value MULTIPLE_FACES)

Thus the full list for LA is now as follows:

  • unknown
  • too_bright
  • too_dark
  • eyes_closed
  • multiple_faces
  • sunglasses
  • obscured_faces

Translations are provided as usual.

Caveat: this declares support for the new codes in the SDK. It does NOT define when the new codes will be produced by our servers. This capability will be delivered in the future.

Alternative Face Detectors have been removed

It was determined that the alternative face detectors "Blazeface" and "ML-Kit" were too large and not being used, so this feature was previously deprecated.

In 9.x, the deprecated option faceDetector and the two additional libraries iproov-blazeface and iproov-mlkit have been removed. Also the "pose" options (for MLKit only), genuinePresenceAssurance.maxYaw, genuinePresenceAssurance.maxRoll and genuinePresenceAssurance.maxPitch were removed.