Orchestration SDK for iOS changelog
Subscribe to get automatic updates:
Orchestration SDK for iOS 2.2.0
October 20, 2026
Key features
- PingOne Recognize
-
A new
recognizemodule provides privacy-preserving facial biometrics for enrollment and sign-in in authentication journeys.Learn more in Integrating PingOne Recognize.
- Facebook Limited Login
-
Sign in to Facebook using the OIDC ID-token flow instead of the classic access-token login.
In PingOne Advanced Identity Cloud and PingAM journeys, configure an OIDC Social Identity Provider with a name containing
fb-limitedto opt in; existing provider names such asfacebookcontinue to use classic access-token login.In DaVinci Custom HTML and PingOne Forms, set the new
facebookLimitedLoginEnabledproperty on the Facebook collector to choose between the classicaccessTokenand Limited LoginidTokenpayloads.Learn more in Authenticating with external identity providers on iOS.
- PingOne MFA integration
-
A new
pingonemfamodule turns your iOS app into a second authentication factor for sign-ons started on another device, such as a web browser or kiosk. It supports device pairing in a DaVinci flow withMobilePairingCollector, push notification approval and denial including number matching, and OATH one-time passcode generation.Learn more in Integrating with PingOne MFA on iOS.
Added
-
Added
ImageCollectorto support image display in DaVinci forms. [SDKS-5143] -
Added
MetadataCollectorto support the DaVinci SDK Integrator connector’s pause/resume model, so the app can invoke on-device SDKs and return a result or error before the flow continues. [SDKS-5142] -
Added
triggerandisAutomaticproperties to the DaVinci FIDO collectors. [SDKS-4552] -
Added a present-only launch mode to
BrowserLauncherthroughbrowserMode: .custom.launch()resolves as soon as the browser UI is presented, without waiting for a callback. Use this for use cases such as session handoff or in-app SSO, where no redirect back to the app is expected. [SDKS-5357] -
Added
OidcError.configurationErrorto report a configuration that has neither a usablediscoveryEndpointnor a pre-suppliedopenIdobject. [SDKS-5301] -
Added opt-in commercial device-model-name resolution to
DeviceProfileCallbackthroughPlatformCollector(includeModelName: true); the defaultPlatformCollector()payload is unchanged. [SDKS-5275]
Updated
-
Redesigned the PingExample sample app with a shared design system. [SDKS-5054]
-
Updated the Facebook iOS SDK dependency to 18.1.0. [SDKS-5160]
-
The
oidc.discoveryEndpointproperty in unified JSON configuration is now required only when nooidc.openIdsub-object is supplied.An
openIdblock withoutdiscoveryEndpointreplaces the discovery document and requirestokenEndpoint. [SDKS-5301] -
Restored
OidcClientConfig.openIdas a publicly settable property, andoidcInitialize()now skips OpenID discovery when it is pre-supplied, restoring the 2.0.0 no-discovery configuration path. [SDKS-5301]
Breaking changes
-
PingJourneyno longer has a hard dependency onPingDeviceProfile. [SDKS-5443]Previously, every
PingJourneyconsumer’s binary transitively linkedPingDeviceProfile, whoseBluetoothCollectorinstantiatesCBCentralManager, causing App Store Connect to flag the app for a missingNSBluetoothAlwaysUsageDescriptioneven when noDeviceProfileCallbacknode was used.If your journeys use the Device Profile Collector node, add the
PingDeviceProfileproduct or pod explicitly to your ownPackage.swiftorPodfile. -
OidcErrorhas a newconfigurationErrorcase, so exhaustiveswitchstatements overOidcErrorneed a new branch. [SDKS-5301]
Changed
-
A JSON configuration with a blank
oidc.discoveryEndpointand nooidc.openIdsub-object now fails at parse time instead of at first use. [SDKS-5301] -
OidcClientConfig.oidcInitialize()cancellation is now isolated per caller: cancelling one caller’s own task still returns promptly withCancellationError, but no longer cancels the shared discovery operation for any other caller currently sharing it. [SDKS-5301] -
CallbackRegistry.callback(from:)now logs a debug message when a journey response contains a callback type with no registered handler, such as aDeviceProfileCallbackin an app that did not add thePingDeviceProfilemodule, making the missing-module misconfiguration diagnosable instead of silently dropping the callback. [SDKS-5443] -
SubmitCollector,FlowCollector, andMetadataCollectornow exposeactionKeythrough the newActionKeyProviderprotocol. [SDKS-5290]
Fixed
-
Fixed DaVinci FIDO registration and authentication not launching automatically when the form’s
triggerproperty is notBUTTON. [SDKS-4552] -
Fixed FIDO2 client-side WebAuthn errors (cancellation, timeout, and similar) not routing to the DaVinci error branch. [SDKS-4478]
-
Fixed
QRCodeCollectornot preserving the complete QR code data URI incontent. [SDKS-5299] -
Fixed
OidcWebClient.authSessionand.ephemeralAuthSessionnot completing for Universal Link (https) redirect URIs. [SDKS-5239] -
Fixed
OidcWebClient.authorize()collapsingFailureNode.causeto.unknown, losing typed browser-cancellation and unsupported-OS error identity. [SDKS-5295] -
Fixed 5xx PingAM responses with a parseable error body being misclassified as
FailureNodeinstead ofErrorNode, diverging from Android. [SDKS-5358] -
Fixed
Journey.start(backchannelUri:)not rejecting whitespace-onlyauthIndexTypeandauthIndexValue, diverging from Android. [SDKS-5359] -
Fixed the asynchronous
OidcClient.generateAuthorizeUrl(customParams:)silently falling back to the standard (non-PAR) flow when called beforeOidcClientConfig.oidcInitialize(), which could emitadditionalParametersonto the returned URL instead of the PAR POST body. The synchronous overload never supported PAR and is unaffected. [SDKS-5403] -
Fixed
swift build(macOS) failing inPingOidc:OidcDeviceClient.authorize(verificationUriComplete:)now throwsBrowserError.httpsCallbackUnsupportedOSon non-iOS platforms instead of referencing the iOS-onlyBrowserLaunchertype, and thePingOneMFAtarget’sPingOneSDKdependency is iOS-conditioned. [SDKS-5443]
Orchestration SDK for iOS 2.1.0
July 22, 2026
Key features
- Pushed Authorization Requests (PAR) [SDKS-4235]
-
PAR sends OAuth 2.0 authorization parameters directly to the server before the redirect begins, keeping them out of the browser URL and reducing the chance of them being tampered with or exposed in logs or referrer headers.
Learn more in Configuring iOS apps for Pushed Authorization Requests.
- OAuth 2.0 Device Authorization Grant [SDKS-4785]
-
The Device Authorization Grant is designed for devices with no browser or keyboard, such as smart TVs or set-top boxes. Users authenticate on a secondary device like a phone, and the primary device receives a token once sign-in completes.
Learn more in Configuring iOS apps for the Device Authorization Grant.
- Standardized JSON configuration [SDKS-5066]
-
All SDK modules now support a shared JSON object or file for configuration. This makes it straightforward to manage settings across environments and to share a single configuration file across Android, iOS, and JavaScript.
Learn more in:
Enhancements
-
Added
PollingCollectorfor DaVinci flows. [SDKS-4682] -
Added
QRCodeCollectorfor DaVinci flows. [SDKS-4680] -
Added
BooleanCollectorto support Checkbox and Switch input types in DaVinci forms. [SDKS-4920] -
Added
ReadOnlyTextCollectorfor DaVinci forms. [SDKS-4928] -
Added rich text and embedded link support to
LabelCollectorthrough newRichContentandRichContentReplacementtypes. [SDKS-4245] -
Added support for phone number extensions in
PhoneNumberCollector. [SDKS-4668] -
Added
PushError.pushNumberChallengeErrorto surface a distinct failure for Push Number Challenge responses. [SDKS-5115] -
Added
preferImmediatelyAvailableCredentialsoption to FIDO authentication to restrict the ceremony to locally-available credentials only, if they exist. [SDKS-5212] -
Added
AuthMigrationmodule for migrating existing sessions from the legacy ForgeRock SDK. [SDKS-4773] -
Added Page Node description, header, and footer support. [SDKS-4762]
Fixes
-
Fixed permanent authentication failure after iCloud device migration caused by a Secure Enclave key mismatch. [SDKS-5172]
-
Fixed
PingFidoWebAuthn registration ignoring the configureddisplayNameduring passkey creation. [SDKS-5211] -
Fixed
PasswordCollectornot handling nested password policies. [SDKS-4695] -
Fixed PIN verification during device binding registration. [SDKS-5015]
-
Fixed
Protectcollector being triggered multiple times within a flow. [SDKS-4769] -
Fixed browser close and reset logic. [SDKS-4717]
-
Fixed device binding authenticators incorrectly reporting as supported on the simulator. [SDKS-4836]
-
Fixed
DeviceBindingConfigdevice name defaulting to the user-assigned name instead of the device model. [SDKS-4850] -
Fixed
DefaultDeviceIdentifierto reuse the legacy device identifier when available. [SDKS-4630] -
Fixed Swift build failures caused by a platform bump and missing
canImportguards. [SDKS-4916] -
Fixed FIDO ceremony logs not routing through the workflow logger. [SDKS-4924]
Orchestration SDK for iOS 2.0.0
April 15, 2026
Key features
- Initial release
-
The initial release of the Orchestration SDK for iOS is now available with new features and additional support.
This release supports the following key features:
-
Authentication journeys. [SDKS-3918]
-
OATH-based MFA in authentication journeys. [SDKS-4100]
Learn more in Integrating OATH-based one-time passcode auth journeys.
-
Push-based MFA in authentication journeys. [SDKS-4105]
Learn more in Integrating with Push MFA auth journeys.
-
FIDO and Passkeys in authentication journeys and DaVinci flows. [SDKS-4137]
-
Device binding in authentication journeys. [SDKS-4117]
Learn more in Introducing Device Binding.
-
Device profiling in authentication journeys. [SDKS-4128]
Learn more in Introducing Device Profiling.
-
reCAPTCHA Enterprise in authentication journeys. [SDKS-4440]
Learn more in Integrate with Google reCAPTCHA Enterprise.
-
Self-managing MFA devices registered in Advanced Identity Cloud and PingAM. [SDKS-4491]
Learn more in Managing registered devices.
-
Enhancements
-
Added new
PingNetworkmodule. [SDKS-4496] -
Added new
PingDeviceIdmodule. [SDKS-4122] -
Added new
PingTamperDetectormodule. [SDKS-4366] -
Added new
PingJourneyPluginandPingDavinciPluginmodules. [SDKS-4492] -
Added new
PingCommonsmodule. [SDKS-4104] -
Added support for core callbacks in the
PingJourneymodule. [SDKS-4060] -
Added support for native social login to Facebook, Google, and Apple in Advanced Identity Cloud and PingAM journeys. [SDKS-3898]
-
Added migration mechanism for existing device binding data from the ForgeRock SDK to the Orchestration SDK for iOS. [SDKS-4495]
DaVinci client for iOS 1.3.0
October 23, 2025
Enhancements
-
Added support for PingOne Protect, by using the new
PingProtectmodule. [SDKS-4073]Learn more in Evaluating risk with PingOne Protect.
DaVinci client for iOS 1.2.0
July 8, 2025
Enhancements
-
Added support for native social login with Apple, Google, and Facebook. [SDKS-3450]
-
Added support for PingOne Forms one-time passcode (MFA) components
DEVICE_REGISTRATION,DEVICE_AUTHENTICATION, andPHONE_NUMBER. [SDKS-3563] -
Added access to the previous
ContinueNodenode from anErrorNode. [SDKS-3891] -
Added access to the
keyattribute ofLabelCollector. [SDKS-3956]
DaVinci client for iOS 1.1.0
April 17, 2025
Enhancements
-
Added support for additional PingOne Form fields. [SDKS-3671, SDKS-3672]
-
Label
-
Checkbox
-
Dropdown
-
Combobox
-
Radio list
-
Flow link
-
-
Added an
external-idpmodule to support social sign on with supported external IDPs by using browser redirects. [SDKS-3720, SDKS-3920]Supported external IDPs:
-
Apple
-
Facebook
-
Google
-
-
Added
Accept-Languageheader to support localization. [SDKS-3623] -
Added ability to validate PingOne Form fields. [SDKS-3671, SDKS-3672]
-
Added support for default values in PingOne Form fields. [SDKS-3674]
-
Added a
PingBrowsermodule. [SDKS-3920] -
Added Swift 6 support. [SDKS-3728]