fingerprint_flutter 5.0.0-test.0
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/agentv4. There is no extra npm peer dependency.
Package
fpjs_pro_pluginis nowfingerprint_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.dartis the only public import.error.dart,result.dart, andregion.dartare gone.pluginVersionis renamed tofingerprintFlutterVersion.Region.stringValueis removed, useRegion.name.- Static
FpjsProPlugin.initFpjs/getVisitorId/getVisitorDataare replaced by an instanceFingerprintclient withget({tags, linkedId, timeout}). - The constructor is synchronous and starts the client. Identification failures surface on
get. On Android and iOS, the constructor throwsFlutterErrorif the Flutter binding does not exist yet, so callWidgetsFlutterBinding.ensureInitialized()first, as withinitFpjs. - Timeouts are
Duration.endpoint+endpointFallbacksbecome oneendpointslist. Platform options nest underandroid,ios, andweb. scriptUrlPattern,scriptUrlPatternFallbacks, andextendedResponseFormatare removed.tagsmust be JSON-compatible (string keys, finite numbers, no typed lists).getthrowsArgumentErrorright away for invalidtagsor atimeoutunder 1 ms, before identifying. The constructor throwsArgumentErrorfor anandroid.locationTimeoutunder 1 ms.- Custom
endpointsstill 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,
regionstill defaults toRegion.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).requestIdis noweventId.confidence/confidenceScoreand the extended types (ipLocation,firstSeenAt, and the rest) are gone.visitorIdis null when hidden (Zero Trust).
Errors
One
FingerprintError(code,message?,eventId?). Discriminate onerror.code. Network failures reportcode: 'network_error'on all platforms.FingerprintErrordoes not extendPlatformException; if you catch SDK errors withon PlatformException, switch toFingerprintError.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.iorepository 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
geton 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 aJSArray). Convert Dart string lists with.toJSbefore 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 #
4.13.0-test.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 SDK3.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 #
4.12.0-test.2 #
4.12.0-test.1 #
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 SDK3.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 #
4.10.0 - 2026-06-10 #
4.9.0 - 2026-05-05 #
4.8.0 - 2026-04-28 #
4.7.0 - 2026-03-31 #
4.6.0 - 2026-02-19 #
4.5.0 - 2025-12-11 #
4.4.0 - 2025-10-28 #
4.3.0 - 2025-09-23 #
Features #
- add Proximity Detection init options (
allowUseOfLocationData- to allow collect location data andlocationTimeoutMillisAndroid- 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 #
4.1.0 - 2025-08-25 #
Features #
- add
ProxyIntegrationSecretEnvironmentMismatcherror (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_utilsandpackage:jstodart:js_interopfor Web platform (2d2a068) - remove
jspackage 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.1 - 2024-12-05 #
3.3.0 - 2024-12-03 #
Features #
- add
sealedResultsupport (5dec0bf) - add
timeoutMsargument forgetVisitorIdandgetVisitorDatamethods (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.1.0 - 2024-08-22 #
3.0.1 - 2024-08-06 #
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 #
- change sdk limitations (b48231c)
2.1.1 - 2024-01-19 #
2.1.0 - 2023-11-15 #
2.0.1 - 2023-09-07 #
2.0.0 - 2023-08-30 #
1.6.0 - 2023-06-30 #
1.4.1-test.1 - 2023-05-03 #
1.4.0 #
1.3.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
getVisitorDatafor result containing more data thanvisitorId - Add
extendedResponseFormatflag to theinitFpjsfunction to get extendedResponseFormat in thegetVisitorDatamethod
Now we have feature parity with the JavaScript agent.
1.0.3 #
Documentation Changes #
- Update urls domain from fingerprintjs.com to fingerprint.com
- Update logo
- Add more code examples
1.0.0 #
0.1.0 #
- Initial implementation