Repository navigation
Upgrading to SDK v14.x
iProov iOS SDK v14.0.0 contains breaking changes. Please review the changes below and consult the README for full integration details.
The SDK now requires iOS 16.0 or later.
SuccessResult and FailureResult have been removed, along with the deprecated frame. Update your Status handling:
case .success:
// The user was successfully verified/enrolled
case let .failure(reasons):
let feedbackCodes = reasons.map(\.feedbackCode)
let localizedDescriptions = reasons.map(\.localizedDescription)In Objective-C, update your success and failure blocks:
success:^{
// The user was successfully verified/enrolled
}
failure:^(NSArray<NSString *> *feedbackCodes, NSArray<NSString *> *localizedDescriptions) {
// The user was not successfully verified/enrolled
}IProovError has three new cases: unsupportedDevice, unsupportedOSVersion and unsupportedSDKVersion. Add them to any switch without a default case. If you previously detected these conditions via serverError, use the new cases instead.
The default filter is now NaturalFilter. To keep the previous appearance, set it explicitly:
options.filter = Options.LineDrawingFilter()NaturalFilter can now also be used for Genuine Presence Assurance claims.
New opt-in options provide additional guidance for users with visual impairments during Genuine Presence Assurance claims:
options.genuinePresenceAssurance.accessibility.isColorEnabled = true
options.genuinePresenceAssurance.accessibility.isSoundEnabled = true
options.genuinePresenceAssurance.accessibility.isVibrationEnabled = trueIf your app plays audio, consider pausing it during the capture when isSoundEnabled is on. See the README for details.
If you provide your own localized strings, add these keys:
IProov_ErrorUnsupportedDeviceIProov_ErrorUnsupportedOSVersionIProov_ErrorUnsupportedSDKVersion
We strongly recommend migrating to Swift Package Manager, as CocoaPods trunk becomes read-only in December 2026. See Migrating from CocoaPods to Swift Package Manager.