Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/android-release-r8-rules.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/drop-jitpack-repo.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/native-background-queue.md

This file was deleted.

8 changes: 2 additions & 6 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
{
"mode": "pre",
"mode": "exit",
"tag": "test",
"initialVersions": {
"fingerprint_flutter": "4.13.1"
},
"changesets": [
"android-release-r8-rules",
"drop-jitpack-repo",
"native-background-queue",
"v5-api-migration",
"validate-endpoints"
"v5-api-migration"
]
}
10 changes: 6 additions & 4 deletions .changeset/v5-api-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Migrated the SDK to Fingerprint API v4. This is a breaking change on every platf
**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.
- 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. The plugin no longer adds the `jitpack.io` repository. If your app uses JitPack dependencies, declare the repository yourself.
- 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.
Expand All @@ -28,10 +28,12 @@ Migrated the SDK to Fingerprint API v4. This is a breaking change on every platf

- `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`.
- The constructor is synchronous and starts the client. Identification failures surface on `get`. On Android and iOS:
- The native client is created and `get` starts on a background thread, so creating the client at app startup does not block the UI thread.
- 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.
- `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 `endpoints` entry that is not an `http` or `https` URL, or 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](https://docs.fingerprint.com/docs/regions) last if you want it.
- On Android and iOS, `region` still defaults to `Region.us`. Set it for EU and AP workspaces.

Expand Down Expand Up @@ -84,7 +86,7 @@ Migrated the SDK to Fingerprint API v4. This is a breaking change on every platf

- `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](https://dev.fingerprint.com/docs/zero-trust-mode)).
- `visitorId` is null when hidden ([Zero Trust](https://docs.fingerprint.com/docs/zero-trust-mode)).

**Errors**

Expand Down
5 changes: 0 additions & 5 deletions .changeset/validate-endpoints.md

This file was deleted.

13 changes: 6 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@
### Patch Changes

- Android: fix R8 release builds failing with "Missing class com.google.android.gms..." and crashing on startup with `IllegalAccessError` on AGP 9.1. ([e656f7a](https://github.com/fingerprintjs/flutter/commit/e656f7a98bfcd8505cee24b5f1c88fa30399cdc8))
- The `Fingerprint` constructor throws `ArgumentError` for an `endpoints` entry that is not an `http` or `https` URL. Before, it failed at `get`, differently on each platform. ([e51e064](https://github.com/fingerprintjs/flutter/commit/e51e064b6f4f030fcba95370deb0c09a947e3577))

### 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`**

* The `Fingerprint` constructor throws `ArgumentError` for an `endpoints` entry that is not an `http` or `https` URL. Before, it failed at `get`, differently on each platform. ([e51e064](https://github.com/fingerprintjs/flutter/commit/e51e064b6f4f030fcba95370deb0c09a947e3577))

## 5.0.0-test.0

### Major Changes
Expand Down Expand Up @@ -122,23 +121,23 @@

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

````diff
```diff
- <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))
````
```

([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](https://github.com/fingerprintjs/flutter/commit/f680434344af66f78c86c3fad94651625097e255))
- 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](https://github.com/fingerprintjs/flutter/commit/f680434344af66f78c86c3fad94651625097e255))

### 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](https://github.com/fingerprintjs/flutter/commit/f680434344af66f78c86c3fad94651625097e255))

## 4.13.1

### Patch Changes
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
identification and device intelligence with industry-leading accuracy. Fingerprint Flutter SDK is an easy way to integrate Fingerprint into your Flutter
application. The plugin allows you to call the underlying native Fingerprint agents (Android, iOS, and Web) and identify devices.

This package replaces `fpjs_pro_plugin`. If you are upgrading from 4.x, see the [5.0.0 changelog](https://github.com/fingerprintjs/flutter/blob/main/CHANGELOG.md#500).
> [!IMPORTANT]
> This package replaces `fpjs_pro_plugin`. Upgrading from 4.x? See the [5.0.0 release notes](https://github.com/fingerprintjs/flutter/blob/main/CHANGELOG.md#500) for the migration guide.

## Table of contents
- [Fingerprint Flutter](#fingerprint-flutter)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"license": "MIT",
"devDependencies": {
"@changesets/cli": "^2.30.0",
"@fingerprintjs/changesets-native-dependency-format": "^0.2.0"
"@fingerprintjs/changesets-native-dependency-format": "^0.2.1"
},
"packageManager": "pnpm@11.10.0+sha512.0b7f8b98060031904c017e3a41eb187a16d40eeb829b95c4f8cb03681761fc4ab53dd219115b9b447f4dce1a05a214764461e7d3703392a9f32f9511ce8c86c8"
}
10 changes: 5 additions & 5 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading