---
title: 3DS iOS SDK Changelog
slug: 3ds-ios-sdk-changelog
docTags: 
createdAt: 2026-09-24T12:00:00.000Z
---

# 3DS iOS SDK Changelog

## \[2.3.0] - 2026-09-24

**Added**

- The SDK now runs the card issuer's 3DS Method automatically in the managed-order flow (`doChallengeIfNeeded`) when the issuer requires it. No code changes are needed.
- Custom domain (CNAME) support: `setup(siteID:customization:thirdPartyBaseURL:)` sends all 3DS requests through a custom domain provided by Forter. It throws `FTR3DSError.invalidThirdPartyBaseURL` (code `3007`) if the value isn't an `https` URL with a host.

**Changed**

- `challengeCompleted(error:)` and the other challenge callbacks are now always called on the main thread.

**Fixed**

- The managed-order flow now calls `challengeCompleted(error:)` with an error when the challenge data is incomplete, instead of never calling back.

**Other Changes**

- Improved error diagnostics.

## \[2.2.1] - 2026-09-02

**Changed**

- The static-linkage variant no longer includes the native 3DS SDK; challenges are shown in a web view. Use the CocoaPods `Forter3DS/NoNativeStatic` subspec, or the `<version>-no-native-static` tag with Swift Package Manager. It replaces the `Static` variant from 2.2.0.

## \[2.2.0] - 2026-08-25

**Added**

- A static-linkage variant of the SDK: the CocoaPods `Forter3DS/Static` subspec, or the `<version>-static` tag with Swift Package Manager. The default (`Dynamic`) variant is unchanged.

**Other Changes**

- Improved error diagnostics.

## \[2.1.3] - 2026-07-29

**Fixed**

- Fixed App Store validation errors caused by helper frameworks embedded in the SDK.

## \[2.1.2] - 2026-06-15

**Fixed**

- Network requests are now retried on transient network failures.

## \[2.1.0] - 2025-05-14

**Other Changes**

- Updated the embedded Netcetera 3DS SDK to version 2.5.20.
