iOS devices
Fingerprint's device intelligence platform for iOS devices.
Fingerprint's device intelligence platform is also available for iOS devices. Our device intelligence platform for iOS helps you to accurately identify the devices that interact with your mobile app and provides high-quality smart signals that will help you identify risky transactions before they happen.
To make integrations with mobile apps easier, we offer SDKs for apps built natively as well as for apps built using multi-platform frameworks (e.g. React Native).
A Fingerprint account is required to be able to use the Fingerprint Identification SDK in your mobile apps. If you do not have an account yet, please sign up for one.
Download our demo app from App Store to see Fingerprint in action!
Device Identifier
When Fingerprint Identification SDK is integrated into your mobile app, for every device that interacts with your app, you will be able to receive a unique device identifier (i.e. visitorId
). The visitor ID is derived solely from Apple's identifierForVendor (IDFV) property. The SDK does not use any fingerprinting techniques to identify a device.
However, despite the visitor ID being derived from IDFV, there are a few important differences between them:
- The visitor ID will remain the same even when the app is removed and re-installed whereas the IDFV will not.
- In addition to being scoped by the vendor, the visitor ID is also scoped by the Fingerprint Workspace. It means the only time the visitor ID remains the same between two apps is when the apps are from the same vendor and when they belong to the same Fingerprint workspace.
Did you know?The device identifier generated by the iOS SDK (embedded within your mobile app) will be different from the visitor ID generated by the Javascript agent (embedded within your website).
The identification accuracy, when compared with browsers, is better for iOS devices because the IDFV property has higher longevity than the signals used for identifying browsers.
For your reference, we have listed various scenarios where a visitor ID will remain the same before and after and where a new visitor ID will be created.
Scenario | Will I receive the same visitor ID before and after? |
---|---|
The app or device is restarted | Yes. You will receive the same visitor ID even after the app or device is restarted. |
The app is uninstalled and re-installed again | Yes. You will receive the same visitor ID even after the app is removed and installed again |
The provisioning profile and/or the signing certificate of the app are changed. | Yes. You will receive the same visitor ID as long as the AppID remains the same before and after the change. |
The device is jailbroken | Yes. You will receive the same visitor ID as before even after the device is jailbroken. |
Lockdown mode is enabled on the device | Yes. You will receive the same visitor ID as before even after lockdown mode is enabled on the device. |
Reset device settings to their default values | Yes. You will receive the same visitor ID as before even after one or more of the device settings are reset to their default. |
The device is factory reset(i.e. all content and settings are erased). | No. After the device is factory reset, a new visitor ID will be generated. |
Proximity Detection for iOS Devices
Proximity detection is a complementary, location-based signal. Unlike the visitor ID, the proximity ID does not identify a unique device but instead represents a fixed geographical zone within which the device is observed. This provides an additional layer of context, making it possible to identify groups of devices in the same physical area or a single device that may have changed its identity while remaining in the same zone.
- To use this feature, make sure to update your app to use iOS SDK v2.10.0 or higher.
- Ensure your app declares the required location permissions. For integration details, please follow the instructions on the iOS SDK configuration page.
- Proximity IDs and related data (e.g., confidence level, precision radius) will be exposed only via the Server API, webhooks, or when Sealed Client Results are enabled.
We use a discrete global grid system to generate proximity data in a consistent and privacy-conscious way. This approach allows us to represent user locations as coarse, non-identifiable spatial zones (proximity IDs), enabling scalable proximity detection and fraud analysis while protecting user privacy.
The response will include proximity results in the following structure:
{
"proximity": {
"data": {
"id": "Ykq4nTqI4aa",
"precisionRadius": 10,
"confidence": 0.91
}
}
}
id
id
The id
field is a stable identifier for a given proximity zone. Devices observed within the same zone will share the same id
.
It can be used for detecting behaviors like:
- Devices frequently appearing together (co-location patterns).
- Repeated activity from the same physical area.
- Potential device farms or shared access points.
id
cannot be reverse-mapped to a specific geolocation, enabling privacy-preserving location-based analysis without compromising user identity or precision.
precisionRadius
precisionRadius
The precisionRadius
field indicates the precision level of the proximity zone, expressed in meters. For example, "precisionRadius": 10
means the device's location was mapped to a zone covering an area approximately 10 meters across.
- Smaller values correspond to finer-grained zones and higher precision.
- Proximity precision levels are hierarchical: each proximity ID is contained within a parent proximity ID at a coarser level (larger
precisionRadius
).- Devices with identical coordinates can map to different proximity IDs if their reported location accuracies differ significantly.
- For example, identical coordinates with
5
m and10
m location accuracy would map to the same proximity ID, while50
m accuracy would map to a different, coarser proximity ID.
- By default, we return the most precise proximity ID based on the location signals, but you can also retrieve proximity data at a specific (default or larger)
precisionRadius
using /events/search.
How to interpret precisionRadius
Precision Radius range | What it means | Typical use cases |
---|---|---|
0-10 m | Very precise location (room-level or same building). | Detecting co-located devices, potential device farms, or flagging a single device that may have changed its identity but remained in the same location. |
10-75 m | Street-level accuracy. Same street or nearby building. | Retail/store fraud detection, delivery validation, nearby device matching. |
75-200 m | Neighborhood/block-level accuracy. | Good for geo-marketing and less strict fraud checks; however, it can flag potential clusters of spoofed locations or reused identities. |
200 m-1 km | City-level accuracy. Same area, but not the exact spot. | Audience analytics, compliance checks, potential clusters of spoofed locations or reused identities. |
1 km+ | Rough location. | Country/city validation, coarse geolocation, potential clusters of spoofed locations or reused identities. |
confidence
confidence
The confidence
field ranges from 0
to 1
and reflects the likelihood that the true device location lies within the mapped proximity zone rather than an adjacent one. It is calculated by evaluating multiple factors that determine how well the device location coordinates and accuracy radius fit within the proximity zone.
- Scores closer to
1
indicate high confidence that the true device location is inside the mapped proximity zone, as the device location area fits cleanly within its bounds. - Scores closer to
0
indicate low confidence, as the device location area is only partially contained within the proximity zone bounds, suggesting the true location point may lie within an adjacent zone. Even with a score of0
, the true location will always be either within the mapped proximity zone or an immediately adjacent one. Retrieving proximity IDs from /events/search at coarser precision levels (filtering by largerprecisionRadius
values) typically yields higher confidence scores.
iOS Smart Signals
Smart Signals are actionable device intelligence signals that help you to make informed decisions about the device and thus prevent fraud. These signals could be used as input to your machine learning models behind your fraud detection or risk mitigation engines. For example, when you know that a request is originating from a jailbroken device, you will be able to take additional precautionary security steps (e.g., multi-factor authentication).
When your mobile app requests a visitor ID, the SDK, along with the IDFV, will collect several other attributes from the device. The Smart Signals are deduced by combining these attributes with additional algorithms.
For iOS, the following smart signals are available:
- Factory Reset Detection
- Frida Detection
- Geolocation Spoofing Detection
- IP Geolocation Detection
- IP Blocklist Detection
- Jailbroken Device Detection
- MitM Attack Detection
- Tampered Request Detection
- VPN Detection
These smart signals are available as part of our Pro Plus and Enterprise plans. If you are interested in one or more of these signals, please contact our support team to enable them. Signing up for an Enterprise plan does not automatically enable these signals.
Fingerprint Identification SDK for iOS
Current Version: 2.10.0For release notes and older versions, please visit the Changelog for iOS SDK page.
Supported Versions
The minimum version that the iOS SDK for Fingerprint Identification supports is iOS 13, tvOS 15. Per Apple and Statista, this will allow your app to be compatible with a wide variety of active iOS devices.
As of May 2023, our SDK will allow your app to be compatible with more than 94% of the devices in the world.
Getting Started Guides
Our Getting Started guides are aimed at helping you to integrate our SDK with your apps easily.
- For native iOS apps, see Getting Started Guides > iOS.
- For apps built using Flutter, see our Flutter SDK on Github.
- For apps built using React Native, see our React Native SDK on Github.
Privacy Manifest File Requirements for App Store
During WWDC 2023, Apple introduced a new requirement where app and SDK developers must create privacy manifest files to declare the data that their app/SDK collects and the reasons for collecting this data. Accordingly, starting from v2.3.2, the Fingerprint Identification SDK for iOS will include a privacy manifest file. To learn more, please see Understanding privacy manifest files.
FingerprintJS-iOS: Open-source identification library for iOS
We also provide a lightweight, open-source library called fingerprintjs-ios which is available to use for free by everyone. Our commercial SDK, Fingerprint Identification for iOS, is based on our well-maintained, free, open-source library.
For your better understanding, here is a complete set of differences between our open-source library (fingerprintjs-ios
) and our commercial SDK (fingerprint-ios-pro
).
FingerprintJS-iOS
|
Fingerprint Identification for iOS
|
|
---|---|---|
Core Features |
||
Attributes collected from the device |
Basic (e.g. OS, Model) |
Advanced. Lot more attributes, in addition to those collected by the open-source library. |
ID Type | A visitor ID that is solely derived from Apple's identifierForVendor property. | A visitor ID that is solely derived from Apple's identifierForVendor property. |
ID Origin | The visitor ID is generated only from within the device. External servers are not involved. | The visitor ID is generated from within the device and also processed in our servers. |
Is visitor ID the same across multiple apps on a single device? | No. Unless the apps are from the same vendor. | No. Unless the apps are from the same vendor and belong to the same Fingerprint workspace. |
ID Collisions | Common | Very rare |
Support for multi-platform frameworks | ||
Flutter | - | ✓ |
React Native | - | ✓ |
Advanced Features |
||
Server API and Webhooks
(Build flexible workflows)
|
- | ✓ |
Mobile Smart Signals
(VPN Detection, Factory Reset, Geolocation Spoofing, etc)
|
- | ✓ |
Geolocation
(Based on IP address)
|
- | ✓ |
Operations |
||
Data security | Depends on your infrastructure | Encrypted at rest |
Storage | Depends on your infrastructure | Unlimited up to 1 year |
Regions | Depends on your infrastructure | Global, EU and Asia data centers |
Compliance | Depends on your infrastructure | Compliant*** with GDPR, CCPA, SOC 2 Type II, and ISO 27001 |
SLA | SLA is not provided | 99.9% Uptime |
General Support | GitHub Issues/Questions. Response times varies. | Dedicated support team that responds to chat, email, and calls within 1 business day |
Support for submitting an app to App Store | Not available. | Dedicated support will be provided to the extent resulting from using the Fingerprint Identification SDK. |
How to get started? |
||
Get it on GitHub | Sign up for a free 14-day trial |
Updated 1 day ago