Migration from 2.x to 3.0.x
This guide covers public API changes between 2.x and 3.0.x. This version also upgrades the SDK to the PowerAuth mobile SDK 2.0.x (protocol 4.0) and WultraPowerAuthNetworking 2.0.x.
Dependency changes
- PowerAuth mobile SDK is now
2.0.x. - WultraPowerAuthNetworking is now
2.0.x.
Update your app to PowerAuth mobile SDK 2.0.x before adopting this version.
Breaking Changes
PowerAuthPasswordinstead ofPowerAuthCorePassword.
WDOVerificationService.finishActivation(...) now takes a PowerAuthPassword for its newPassword parameter. You no longer need to import PowerAuthCore at the call site.
Before:
import PowerAuthCore
let password = PowerAuthCorePassword(string: "1234")
verification.finishActivation(
newPowerAuthInstance: newPaInstance,
newActivationName: "my-new-activation-name",
newPassword: password,
validatePassword: true,
userIdentification: nil
) { result in /* ... */ }
After:
let password = PowerAuthPassword(string: "1234")
verification.finishActivation(
newPowerAuthInstance: newPaInstance,
newActivationName: "my-new-activation-name",
newPassword: password,
validatePassword: true,
userIdentification: nil
) { result in /* ... */ }
- Read OTP resend cooldown from configuration instead of verification status.
let configuration = try await configurationService.getConfiguration(processType: "onboarding")
let otpResendPeriodSeconds = configuration.otpResendPeriodSeconds
otpResendPeriodSeconds is optional and can be nil when you are still integrating with an older backend that does not return the field yet.
- Update OTP state handling.
Before:
case .otp(let remainingAttempts, let otpResendPeriodInSeconds):
// use both values from verification status
After:
case .otp(let remainingAttempts):
// read resend cooldown from configuration.otpResendPeriodSeconds
Checklist
- Bump your app’s PowerAuth mobile SDK to
2.0.xand WultraPowerAuthNetworking to2.0.x. - Replace
PowerAuthCorePasswordwithPowerAuthPasswordand remove now-unnecessaryimport PowerAuthCorestatements. - If you previously linked PowerAuth via Carthage for this SDK, switch to Swift Package Manager.
- Fetch and keep
WDOConfigurationResponse.otpResendPeriodSecondsfor the active process type, and handlenilfor older backends. - Update
switchstatements and pattern matching forWDOVerificationState.otp. - Stop relying on OTP resend timing from
status()results.
Last updated on Aug 17, 2026 (05:58)
Edit on Github
Send Feedback