Skip to main content
We have released a new major version of the Fingerprint iOS SDK v4.0.0, which allowed us to introduce breaking changes and requires you to manually migrate. The new iOS SDK aligns with the v4 event format. This includes a flattened response format, removed types, and a revised set of error codes. None of these changes affect the underlying identification and smart signals accuracy; these are structural/API changes only.
  • Native mobile SDKs v2.x will continue to work after v4.0.0 is released - you won’t be forced to upgrade right away.
  • During this period, critical client-side hotfixes will still be issued for v2.x if needed, and backend-side improvements (including smart signals detection logic) can continue to benefit v2.x integrations, as long as the required signals are already collected by that SDK version.
  • However, iOS and Android SDKs v2.x support is tied to our overall API v3 deprecation timeline: once the one-year deprecation period begins (which starts only after the full ecosystem, including Flutter and React Native SDKs, supports Server API v4), mobile SDKs v2.x will no longer receive client-side hotfixes once that period ends. Backend-side improvements will still apply to v2.x wherever the SDK already collects the necessary signals.

What’s new

  • The library and module were renamed from FingerprintPro to Fingerprint. Update your imports from import FingerprintPro to import Fingerprint.
  • The FingerprintProFactory type was renamed to FingerprintFactory. Update calls such as FingerprintProFactory.getInstance(...) to FingerprintFactory.getInstance(...).
  • The SDK is now distributed from a new Swift Package Manager repository, https://github.com/fingerprintjs/fingerprint-ios. Because this is a new package rather than a rename, you must remove the old package and add the new one.
  • The CocoaPods pod was renamed from FingerprintPro to Fingerprint-iOS. CocoaPods is still supported for now but is deprecated, see the CocoaPods section below.
  • The FPJSError error type was renamed to FPError.
  • The response object FingerprintResponse changed from a deeply nested shape to a flat one. Several legacy fields (confidence, ipLocation, firstSeenAt, and similar) have been removed, along with their supporting types (IPLocation, IPLocationSubdivision, IPGeoInfo, and SeenAt).
  • requestId is renamed to eventId on the response.
  • A new suspectScore field of type Int? is added to the response.
  • The extendedResponseFormat configuration flag has been removed as v4 always returns the flat format.
  • The APIError.Code enum has been revised, with some cases removed, some renamed, and new ones added to reflect new server-side error codes.
  • Swift upgraded from 5.9 to 6.
  • Dropped support for iOS 13.

Migration steps

The following section outlines the necessary migration steps to complete the transition from v2 to v4.

Upgrade the MAJOR package version

Update the Fingerprint iOS SDK to the latest v4 version.

Swift Package Manager

v4 is distributed from a new repository, https://github.com/fingerprintjs/fingerprint-ios. Because a new repository URL is a new package for Swift Package Manager, you can’t simply bump the version:
  1. Remove the existing fingerprintjs-pro-ios package from your project.
  2. Add the new package https://github.com/fingerprintjs/fingerprint-ios, and set the dependency rule to Up to Next Major Version starting from: "4.0.0".
  3. Resolve packages.
For projects that declare dependencies in Package.swift, update the package URL and version:
To keep using a previous (v2) version, continue using the old repository https://github.com/fingerprintjs/fingerprintjs-pro-ios.

CocoaPods

CocoaPods is still supported in v4, but the pod was renamed from FingerprintPro to Fingerprint-iOS (the Swift Package Manager product, as mentioned above, stays Fingerprint). Update your Podfile, then run pod update:
Following the CocoaPods project’s own shutdown plans, it will stop accepting new versions in December 2026. Existing versions will keep working, but we recommend migrating to Swift Package Manager, which is the preferred installation method.

Update imports, factory, and error type

The library and module were renamed from FingerprintPro to Fingerprint. Update every import across your project. A project-wide Replace All in your IDE is the quickest way to do this.
The FingerprintProFactory type was renamed to FingerprintFactory. Update any calls that create a client instance.
The FPJSError error type was renamed to FPError. Update any typed error handling that references it.

FingerprintResponse field changes

The response object is now flat and no longer exposes the nested fields that came from the v3 response format.

Renamed

Added

Removed

The following fields are no longer part of the response: The IPLocation, IPLocationSubdivision, IPGeoInfo, and SeenAt structs have been removed from the SDK entirely. See IP Geolocation for a replacement available in our Smart Signals product. Indicates the location as deduced from the IP address.

Configuration changes

extendedResponseFormat has been removed. The v4 API always returns a flat response, so the extended format toggle no longer exists.

Error handling changes

The APIError.Code enum has been revised for v4. Some cases were removed, some renamed, and new ones added to reflect new server-side error codes. Update any exhaustive switch statements over APIError.Code to handle the current set of cases. The complete set of APIError.Code cases in v4: If you have an exhaustive switch on APIError.Code, add a default branch (or handle the new cases explicitly) to avoid compile errors.