fingerprint_flutter 5.0.0-test.0 copy "fingerprint_flutter: ^5.0.0-test.0" to clipboard
fingerprint_flutter: ^5.0.0-test.0 copied to clipboard

Flutter plugin for the Fingerprint identification SDKs.

Fingerprint Flutter #

5.0.0-test.0 #

Major Changes #

  • Migrated the SDK to Fingerprint API v4. This is a breaking change on every platform.

    Requirements

    • Flutter 3.44.0 and Dart 3.12.0.
    • Android 7.0 (API 24+). Native SDK 4.1.x. The plugin no longer applies the Kotlin Gradle plugin, so it builds under AGP 9. Apps on AGP 8 need Kotlin Gradle plugin 2.2.20 or newer.
    • iOS 15 / tvOS 15, Xcode 16, Swift 6. Native SDK 4.1.x (Fingerprint-iOS).
    • Only native patch releases are picked up automatically.
    • Web uses the bundled @fingerprint/agent v4. There is no extra npm peer dependency.

    Package

    fpjs_pro_plugin is now fingerprint_flutter.

    - fpjs_pro_plugin: ^4.13.1
    + fingerprint_flutter: ^5.0.0
    
    - import 'package:fpjs_pro_plugin/fpjs_pro_plugin.dart';
    + import 'package:fingerprint_flutter/fingerprint_flutter.dart';
    

    API

    • package:fingerprint_flutter/fingerprint_flutter.dart is the only public import. error.dart, result.dart, and region.dart are gone. pluginVersion is renamed to fingerprintFlutterVersion. Region.stringValue is removed, use Region.name.
    • Static FpjsProPlugin.initFpjs / getVisitorId / getVisitorData are replaced by an instance Fingerprint client with get({tags, linkedId, timeout}).
    • The constructor is synchronous and starts the client. Identification failures surface on get. On Android and iOS, the constructor throws FlutterError if the Flutter binding does not exist yet, so call WidgetsFlutterBinding.ensureInitialized() first, as with initFpjs.
    • Timeouts are Duration. endpoint + endpointFallbacks become one endpoints list. Platform options nest under android, ios, and web.
    • scriptUrlPattern, scriptUrlPatternFallbacks, and extendedResponseFormat are removed.
    • tags must be JSON-compatible (string keys, finite numbers, no typed lists). get throws ArgumentError right away for invalid tags or a timeout under 1 ms, before identifying. The constructor throws ArgumentError for an android.locationTimeout under 1 ms.
    • Custom endpoints still get no automatic fallback on any platform, even though JS agent v4 adds one by default. List the regional default URL last if you want it.
    • On Android and iOS, region still defaults to Region.us. Set it for EU and AP workspaces.
    - await FpjsProPlugin.initFpjs(
    -   '<PUBLIC_API_KEY>',
    -   region: Region.eu,
    -   endpoint: 'https://metrics.example.com',
    -   endpointFallbacks: ['https://metrics2.example.com'],
    -   allowUseOfLocationData: true,
    -   locationTimeoutMillisAndroid: 5000,
    -   scriptUrlPattern:
    -       'https://metrics.example.com/web/v<version>/<apiKey>/loader_v<loaderVersion>.js',
    - );
    - final data = await FpjsProPlugin.getVisitorData(
    -   tags: {'userAction': 'login'},
    -   linkedId: 'user_1234',
    -   timeoutMs: 5000,
    - );
    + final fp = Fingerprint(
    +   apiKey: '<PUBLIC_API_KEY>',
    +   region: Region.eu,
    +   endpoints: [
    +     'https://metrics.example.com',
    +     'https://metrics2.example.com',
    +   ],
    +   android: const AndroidOptions(
    +     allowUseOfLocationData: true,
    +     locationTimeout: Duration(seconds: 5),
    +   ),
    +   ios: const IosOptions(allowUseOfLocationData: true),
    +   web: const WebOptions(
    +     cache: WebCache(
    +       storage: WebCacheStorage.sessionStorage,
    +       duration: WebCacheDuration.optimizeCost,
    +     ),
    +   ),
    + );
    + final result = await fp.get(
    +   tags: {'userAction': 'login'},
    +   linkedId: 'user_1234',
    +   timeout: const Duration(seconds: 5),
    + );
    + print(result.visitorId);
    + print(result.eventId);
    + print(result.suspectScore);
    

    Result

    • FingerprintResult: eventId, visitorId?, suspectScore?, sealedResult?, cacheHit? (web only).
    • requestId is now eventId. confidence / confidenceScore and the extended types (ipLocation, firstSeenAt, and the rest) are gone.
    • visitorId is null when hidden (Zero Trust).

    Errors

    One FingerprintError (code, message?, eventId?). Discriminate on error.code. Network failures report code: 'network_error' on all platforms. FingerprintError does not extend PlatformException; if you catch SDK errors with on PlatformException, switch to FingerprintError.

      try {
    -   await FpjsProPlugin.getVisitorData();
    - } on FingerprintProError catch (error) {
    -   if (error is TooManyRequestError) {
    +   await fp.get();
    + } on FingerprintError catch (error) {
    +   if (error.code == FingerprintError.tooManyRequests) {
          // handle rate limiting
        }
      }
    

    Web

    Caching is off unless you pass web: WebOptions(cache: ...).

    - <script src="assets/packages/fpjs_pro_plugin/web/index.js" defer></script>
    + <script src="assets/packages/fingerprint_flutter/web/index.js" defer></script>
    ``` ([f680434](https://github.com/fingerprintjs/flutter/commit/f680434344af66f78c86c3fad94651625097e255))
    

Patch Changes #

  • Android: the plugin no longer adds the jitpack.io repository to your Gradle project. If your app uses JitPack dependencies, declare the repository yourself. (f680434)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 4.1.0 and < 4.2.0
  • Fingerprint Android SDK Version Range: >= 4.1.0 and < 4.2.0
  • Android and iOS: create the native client and start get on a background thread, not the main thread. Creating the client at app startup no longer blocks the UI thread. (f680434)

4.13.1 #

Patch Changes #

  • Fix a Flutter web WASM crash when initializing the agent (List<String> is not a JSArray). Convert Dart string lists with .toJS before passing them to the JS agent. (fc5e475)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.13.0 #

Minor Changes #

  • Add Swift Package Manager support for iOS. CocoaPods remains supported. FingerprintPro stays >= 2.17.0 < 2.18.0. (c73394c)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.13.0-test.0 #

Minor Changes #

  • Add Swift Package Manager support for iOS. CocoaPods remains supported. FingerprintPro stays >= 2.17.0 < 2.18.0. (c73394c)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.12.0 #

Minor Changes #

  • Bump Flutter SDK floor to 3.19.0. This is a non-breaking change, as the Dart SDK floor (3.3.0) requires at least Flutter SDK 3.19.0. (9ca1412)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.12.0-test.3 #

Patch Changes #

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.12.0-test.2 #

Patch Changes #

  • Restore tag trigger in publish workflow (c165404)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.12.0-test.1 #

Patch Changes #

  • Update publish workflow to run whenever release is published (6ad50e4)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.12.0-test.0 #

Minor Changes #

  • Bump Flutter SDK floor to 3.19.0. This is a non-breaking change, as the Dart SDK floor (3.3.0) requires at least Flutter SDK 3.19.0. (9ca1412)

Patch Changes #

  • Migrate release automation to Changesets. (52cd626)

Supported Native SDK Version Range #

  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0

4.11.0 - 2026-07-07 #

Features #

  • use Fingerprint Pro Android v2.17.0 (4dbaaa1)
  • use Fingerprint Pro iOS v2.17.0 (851e88f)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.17.0 and < 2.18.0
  • Fingerprint iOS SDK Version Range: >= 2.17.0 and < 2.18.0

4.10.0 - 2026-06-10 #

Features #

  • use Fingerprint Pro Android v2.16.0 (2130fa6)
  • use Fingerprint Pro iOS v2.16.0 (e9aefce)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.16.0 and < 2.17.0
  • Fingerprint iOS SDK Version Range: >= 2.16.0 and < 2.17.0

4.9.0 - 2026-05-05 #

Features #

  • use Fingerprint Pro iOS v2.15.0 (a6891c8)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.15.0 and < 2.16.0
  • Fingerprint iOS SDK Version Range: >= 2.15.0 and < 2.16.0

4.8.0 - 2026-04-28 #

Features #

  • use Fingerprint Pro Android v2.15.0 (71efe6d)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.15.0 and < 2.16.0
  • Fingerprint iOS SDK Version Range: >= 2.14.0 and < 2.15.0

4.7.0 - 2026-03-31 #

Features #

  • use Fingerprint Pro Android v2.14.0 (bb6b9b7)
  • use Fingerprint Pro iOS v2.14.0 (5f34319)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.14.0 and < 2.15.0
  • Fingerprint iOS SDK Version Range: >= 2.14.0 and < 2.15.0

4.6.0 - 2026-02-19 #

Features #

  • use Fingerprint Pro Android v2.13.0 (f28380e)
  • use Fingerprint Pro iOS v2.13.0 (1a2b6fe)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.13.1 and < 2.14.0
  • Fingerprint iOS SDK Version Range: >= 2.13.0 and < 2.14.0

4.5.0 - 2025-12-11 #

Features #

  • use Fingerprint Pro Android v2.12.0 (1974c86)
  • use Fingerprint Pro iOS v2.12.0 (b8e4ad4)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.12.0 and < 2.13.0
  • Fingerprint iOS SDK Version Range: >= 2.12.0 and < 2.13.0

4.4.0 - 2025-10-28 #

Features #

  • use Fingerprint Pro Android v2.11.0 (f4266ff)
  • use Fingerprint Pro iOS v2.11.0 (0d692d9)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.11.0 and < 2.12.0
  • Fingerprint iOS SDK Version Range: >= 2.11.0 and < 2.12.0

4.3.0 - 2025-09-23 #

Features #

  • add Proximity Detection init options (allowUseOfLocationData - to allow collect location data and locationTimeoutMillisAndroid - to configure the location retrieval timeout on Android (227d4c1)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.10.0 and < 2.11.0
  • Fingerprint iOS SDK Version Range: >= 2.10.0 and < 2.11.0

4.2.0 - 2025-09-08 #

Features #

  • use Fingerprint Pro Android v2.10.0 (ef9e8fa)
  • use Fingerprint Pro iOS v2.10.0 (bd0ae3b)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.10.0 and < 2.11.0
  • Fingerprint iOS SDK Version Range: >= 2.10.0 and < 2.11.0

4.1.0 - 2025-08-25 #

Features #

  • add ProxyIntegrationSecretEnvironmentMismatch error (f095967)
  • add error handling for invalid proxy integration headers and secret (02b921e)
  • use Fingerprint Pro Android v2.9.0 (66c3525)
  • use Fingerprint Pro iOS v2.9.0 (1f5daf9)
  • use Fingerprint Pro JSAgent loader v3.11.13 (6cf7efc)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.9.0 and < 2.10.0
  • Fingerprint iOS SDK Version Range: >= 2.9.0 and < 2.10.0

4.0.1 - 2025-06-26 #

Bug Fixes #

  • add flutter.sdk path to the local.properties before running semantic release info (a4a681e)
  • pin Fingerprint native dependencies to MINOR version instead of MAJOR (01070b2)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.8.0 and < 2.9.0
  • Fingerprint iOS SDK Version Range: >= 2.8.2 and < 2.9.0

4.0.0 - 2025-05-06 #

⚠ BREAKING CHANGES #

  • Flutter sdk minimal version is 3.13.0
  • Dart sdk minimal version is 3.3.0

Features #

  • update required Dart sdk minimal version to 3.3.0 (a968392)
  • update required Flutter sdk minimal version to 3.13.0 (1441f65)

Bug Fixes #

  • migrate from dart:js_utils and package:js to dart:js_interop for Web platform (2d2a068)
  • remove js package from dependencies (45f46bf)
  • use declarative Gradle plugin syntax (8396f4e)

Supported Native SDK Version Range #

  • Fingerprint Android SDK Version Range: >= 2.7.0 and < 3.0.0
  • Fingerprint iOS SDK Version Range: >= 2.7.0 and < 3.0.0

3.3.2 - 2024-12-09 #

Documentation #

  • README: add how to specify a custom timeout block (66fb0bd)

3.3.1 - 2024-12-05 #

Bug Fixes #

  • make integration info name consistent through all platforms (8128cf4)

3.3.0 - 2024-12-03 #

Features #

  • add sealedResult support (5dec0bf)
  • add timeoutMs argument for getVisitorId and getVisitorData methods (822504a)
  • use Fingerprint Pro Android v2.7.0 (d2f24f2)
  • use Fingerprint Pro iOS v2.7.0 (7144b0a)
  • use Fingerprint Pro JSAgent loader v3.11.3 (b789fb0)

Bug Fixes #

  • fix JSAgent issue with empty ipLocation (ae53e8b)

3.2.0 - 2024-10-08 #

Features #

  • use Fingerprint Pro Android v2.6.0 (c3544b1)

3.1.0 - 2024-08-22 #

Features #

  • add endpointFallbacks configuration param (aeae143)
  • add scriptUrlPatternFallbacks configuration param (ae44e86)
  • update Android agent to v2.5.0 (fd94c3a)
  • update iOS agent to v2.6.0 (f6627a2)

3.0.1 - 2024-08-06 #

Bug Fixes #

  • don't crash on empty ipLocation field for new subs (1b8a657)

Documentation #

  • README: fix links formatting (c7c2862)
  • README: unify linkedId section (9339040)

3.0.0 - 2024-03-25 #

⚠ BREAKING CHANGES #

  • sdk minimal version required to use this library is now 3.1.0+

Features #

  • update dependencies (1e7393e)
  • update Fingerprint PRO for android to 2.4.0 (ea092b1)
  • update Fingerprint PRO for iOS to 2.4.0 (d3a016a)
  • update required sdk minimal version to 3.1.0+ (75c1e08)

Bug Fixes #

2.1.1 - 2024-01-19 #

Bug Fixes #

  • add TooManyRequestError for web platform (219467f)
  • improve error reporting for web platform (df3739c)

2.1.0 - 2023-11-15 #

Features #

  • bump gradle plugin for example (0c83a57)
  • update Android agent to 2.3.4 (0322065)
  • update iOS agent to 2.3.1 (459c7ff)

2.0.2 - 2023-09-25 #

Bug Fixes #

2.0.1 - 2023-09-07 #

Documentation #

  • README: add minimum OS versions (e14fd70)
  • README: fingerprintJS Pro -> Fingerprint Pro (3555881)

2.0.0 - 2023-08-30 #

⚠ BREAKING CHANGES #

  • remove wrong errorMessage field from FingerprintJSProResponse

Features #

  • remove wrong errorMessage field from FingerprintJSProResponse (6154081)

1.7.0 - 2023-08-07 #

Features #

  • update Android agent to v2.3.2 (dec191b)

1.6.0 - 2023-06-30 #

Features #

  • bump iOS Agent to v2.2.0 to introduce new Smart Signals INTER-46 (882938b)

1.5.0 - 2023-05-03 #

Features #

1.4.1 - 2023-05-03 #

Bug Fixes #

  • update Android agent to 2.3.0 (f204bd0)

1.4.1-test.1 - 2023-05-03 #

Bug Fixes #

  • update Android agent to 2.3.0 (f204bd0)

1.4.1 (2023-05-03) #

Bug Fixes #

  • update Android agent to 2.3.0 (f204bd0)

1.4.1 (2023-05-02) #

Bug Fixes #

  • update Android agent to 2.3.0 (f204bd0)

1.4.0 #

New Features #

  • Add support for proxy integrations
  • Add scriptUrlPattern param for web platform

Bug Fixes #

  • Make all IpLocation fields nullable

1.4.0-dev.1 #

New Features #

  • Added support for proxy integrations

1.3.0 #

New Features #

  • Added support for web platform

Bug Fixes #

  • Fix empty tag in methods getVisitorId and getVisitorData for web platform

1.2.3-dev.3 #

Bug Fixes #

  • Fix js interop problems in dart2js environment

1.2.3-dev.2 #

Bug Fixes #

  • Fix empty tag in methods getVisitorId and getVisitorData for web platform

1.2.3-dev.1 #

New Features #

  • Added support for web platform

1.2.2 #

New Features #

  • Android agent updated to improve identification

1.2.1 #

New Features #

  • iOS agent updated to allow request filtering

1.2.0 #

New Features #

  • Now library support iOS 12 again. (Was broken in 1.1.0)

1.1.0 #

New Features #

  • Update iOS agent to the native, use 2.1.0 now
  • Update Android agent to the 2.1.1 version
  • Add tags support
  • Add linkedId support
  • Add new method getVisitorData for result containing more data than visitorId
  • Add extendedResponseFormat flag to the initFpjs function to get extendedResponseFormat in the getVisitorData method

Now we have feature parity with the JavaScript agent.

1.0.4 #

Documentation Changes #

  • Fix logo url

1.0.3 #

Documentation Changes #

  • Update urls domain from fingerprintjs.com to fingerprint.com
  • Update logo
  • Add more code examples

1.0.2 #

Documentation Changes #

  • Fix sample usage

1.0.1 #

Documentation Changes #

  • Added contributing instructions
  • Added badges

1.0.0 #

New Features #

  • Supported Asian region (ap)

Chores #

  • Updated fingerprintjs-pro-android to version 2.0
  • Added ci test run
  • Added codeowners

0.1.3 #

Bug Fixes #

  • Fixed init method getting stuck in the native code

0.1.2 #

Documentation Changes #

  • Added doc comments

0.1.1 #

Chores #

  • Updated dependencies

0.1.0 #

  • Initial implementation