https://github.com/trustdecision/trustdevice-ios
Leading open source version of iOS device fingerprint, accurate deviceID and risk identification.
https://github.com/trustdecision/trustdevice-ios
deviceid fingerprint fraud-detection idfa idfv ios ios-security objective-c swift trustdecision uuid
Last synced: about 2 months ago
JSON representation
Leading open source version of iOS device fingerprint, accurate deviceID and risk identification.
- Host: GitHub
- URL: https://github.com/trustdecision/trustdevice-ios
- Owner: trustdecision
- License: mit
- Created: 2022-12-13T02:51:53.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-05-13T09:08:24.000Z (5 months ago)
- Last Synced: 2025-08-19T23:02:04.994Z (about 2 months ago)
- Topics: deviceid, fingerprint, fraud-detection, idfa, idfv, ios, ios-security, objective-c, swift, trustdecision, uuid
- Language: Objective-C
- Homepage: https://trustdecision.com/solutions/trustdevice
- Size: 5.11 MB
- Stars: 229
- Watchers: 4
- Forks: 19
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
![]()
![]()
![]()
![]()
![]()
# TrustDevice-iOS
A lightweight library for determining device uniqueness and risk identification.Create a device identifier based on basic device information.
Will remain the same after uninstalling and reinstalling or clearing app data.
🪧Attention🪧:The functions of the basic version of github are relatively limited.
You can visit [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-5fkjqqnkoajcs?sr=0-1&ref_=beagle&applicationId=AWSMPContessa) or [TrustDecision](https://trustdecision.com/solutions/device-fingerprint) to learn about our professional version.
## Installation
### Swift Package Manager1. In Xcode, select **File → Swift Packages → Add Package Dependency...**
2. Enter the repository URL, for example:```text
https://github.com/trustdecision/trustdevice-ios.git
```
3. Specify a version range (e.g. `from: "1.6.2"`).### Cocoapods
1. TrustDecision is available through [CocoaPods](https://cocoapods.org). To install it, simply add the following line to your Podfile:```ruby
# Podfile
pod 'TrustDecision', '1.6.2'
```## Quick Start
### 1. Get DeviceInfo
DeviceInfo contains device id, risk information and device details.#### Objective-C
```objective-c
#importTDMobRiskManager_t *manager = [TDMobRiskManager sharedManager];
NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
[options setObject:^(NSDictionary *response) {
// Response in sub-thread, do something with the response
// Get DeviceId
NSString *deviceId = response[@"device_id"];
// Get DeviceRiskLabel
NSDictionary *deviceRisk = response[@"device_risk_label"];
// Get DeviceDetail
NSDictionary *deviceDetail = response[@"device_detail"];
} forKey:@"callback"];
manager->initWithOptions(options);
```#### Swift
```swift
import TrustDecisionvar options = [String : NSObject]()
let responseCallback: ([String : Any])-> Void = { response in
// Response in sub-thread, do something with the response
// Get DeviceId
let deviceId = response["device_id"]
// Get DeviceRiskLabel
let deviceRisk = response["device_risk_label"]
// Get DeviceDetail
let deviceDetail = response["device_detail"]
}
options["callback"] = unsafeBitCast(responseCallback as @convention(block) ([String : Any]) -> Void, to: AnyObject.self) as? NSObject
let manager = TDMobRiskManager.sharedManager()
manager?.pointee.initWithOptions(options)
```## Data Sample
```json
{
"device_id":"4b3491c6bb6a27c6c58a038939a10d4cad97555e517574e7bd0291db96243859",
"device_risk_label":{
"jailbreak":false,
"simulator":false,
"debug":true
},
"device_detail":{
"displayResolution":"828.0x1792.0",
"deviceModel":"N104AP",
"kernelVersion":"Darwin Kernel Version 22.6.0: Wed Jun 28 20:51:23 PDT 2023; root:xnu-8796.142.1~1\/RELEASE_ARM64_T8030",
"debug":true,
"sandboxPath":"/var/mobile/Containers/Data/Application/150E79ED-AAAD-4970-AD89-B9A05EBB05EB",
"mcc":"460",
"batteryState":2,
"teamName":"XXX XXX Technology Co., Ltd.",
"cloudid":"316A8157-B4E5-4F40-BE37-8115588CA734",
"bundleId":"com.trustdevice.fingerprint",
"appVersion":"1.0",
"timeZone":"Asia\/Shanghai",
"applicationId":"R3F7G5M76J.com.trustdevice.fingerprint",
"freeDiskSpace":4820676608,
"localCountryIso":"CN",
"physicalMemory":"8333852672",
"currentTime":1693451898456090,
"totalDiskSpace":127933894656,
"mnc":"02",
"appInstallTime":1679884827203788.8,
"osVersion":"20G75",
"hostName":"ssd",
"osType":"Darwin",
"deviceType":"iPhone",
"displayScale":2,
"idfv":"E5082421-F447-4B45-B453-22C656B56314",
"osRelease":"22.6.0",
"memorySize":"4038885376",
"deviceName":"iOS",
"cpuCount":"6",
"isiOSAppOnMac":0,
"simulator":false,
"jailbreak":false,
"bootTime":1692954854089697,
"secureKernelStatus":true
}
}
```
## Open Source Features+ Basic device ID, consistent when uninstalling applications and reinstalling
+ Basic equipment information, which can be used for simple data analysis
+ Basic risk identification ability| RiskLabel | Risk Description |
| --------- | ------------------------------------------------------------ |
| jailbreak | Attackers will have higher privileges and can install many cheating software to affect the normal development of application business. |
| simulator | The simulator provides many simulation functions, which will affect the normal operation of applications, such as virtual positioning. |
| debug | Applications can be modified by attackers at will, and the program will return unexpected values. |## Open Source VS Pro
| Ability | Open Source | Pro |
| :---------------------------: | :---------: | :----------------------------------------------------------: |
| 100% open source | Yes | No |
| Device ID | Basic | Extremely stable, even if the device is restored to factory settings, it can still be recognized as the same |
| Device Risk Label | Basic | Extremely rich |
| Device Details | Basic | Extremely rich |
| IP Location | - | ✓ |
| Device Risk Score | - | ✓ |
| Environment Risk Evaluation | - | ✓ |
| Fraud Tools Detection | - | ✓ |
| Behavioral Activity Capturing | - | ✓ |## Pro Introduction
TrustDecision TrustDevice has the leading device fingerprint technology, which has been integrated by more than 10000 global leading brands, protecting the entire customer journey.
**There are 6 leading core features about TrustDevice Pro:**
### 1. Wide Coverage
Comprehensive coverage of Android, iOS, Web, H5, applets and other device types.### 2. Stable and Reliable
TrustDevice served more than 10,000 clients, 200 million+ daily active users , and 6 billion+ devices , with excellent product functions and stability.
The fingerprint accuracy of different terminal devices exceeded 99.9%, and the output of risk labels exceeded 70 items.### 3. Unparalleled Safety
TrustDevice's code virtualization & obfuscation technology make the malware fraudsters suffer from painful cost and imprecision when performing reverse-engineering.### 4. Core Intellectual Property
Fully independent intellectual property rights, with a number of patented technology.### 5. Security Compliance
TrustDevice is committed to the highest standards in security and compliance to keep your data safe.
GDPR/CCA/PCI DSS/ISO 27701/ISO 9001 Compliant.### 6. Easy to Deploy
SaaS(Software as a Service)deployment supported, reducing massively your integration cost and enabling rapid access to device fingerprint service.## Where to Get Support
We are happy to provide technical support for our open-source trustdevice-ios library. We recommend using GitHub Issues to submit bugs or Discussions to ask questions. Using [Issues](https://github.com/trustdecision/trustdevice-ios/issues) and [Discussions](https://github.com/trustdecision/trustdevice-ios/discussions) publicly will help the open-source community and other users with similar issues.In addition, any idea or interest in using TrustDevice Pro can be found on the [www.trustdecision.com](https://www.trustdecision.com/trustDevice), registered account for a free trial; or via email trustdevice@trustdecision.com contact us directly and quickly open the service.
## Compatibility
| Items | Description |
| :-----------------------: | :------------------: |
| Supported System Versions | iOS9.0+ |
| Supported Architecture | armv7, arm64, x86_64 |## TrustDevice Pro VS Others
TypeSceneResultTrusDevice ProFingerprintSeonCredoLabSiftShieldPerimeterX
Device Fingerprint CompatibilityiOS 9.0 and above, including iOS 16, etc.Able to collect device info and generate device ID✅✅(ios12 and above)✅(ios9 and above)✅(ios11 and above)✅(ios9.2 and above)✅(ios9 and above)✅(ios11 and above)
Device fingerprint uniquenessDifferent apps (with different package names) on the same deviceDevice fingerprints/ID matches ✅❌❌❌❌❌❌
The same app on two unique devices (including the case of the same device model and the same system version)Device fingerprint/ID should not match. Each device to have its own unique device fingeprint/ID✅✅✅✅✅✅✅
Device Fingerprint StabilityUninstall and reinstallDevice fingerprints/ID are consistent before and after reinstallation✅✅❌✅❌✅❌
Clear all app dataDevice fingerprints/ID are consistent before and after clearing all app data✅✅❌✅❌✅❌
Disable all app permissions except network permissions and clear app dataDevice fingerprints/ID are consistent before and after disabling all permissions✅✅❌✅✅✅✅
Modify the common information of the device system (brand, model, IDFA, IDFV, etc.) through the machine modification toolDevice fingerprint/ID still matches with before modification✅✅❌✅❌✅❌
Device system upgradeDevice fingerprints/ID are consistent before and after system upgrade✅✅✅✅✅✅✅
Factory reset (including iOS 14 and above, etc.)The device fingerprints/ID are the same before and after the device is restored to factory settings✅❌❌❌❌❌❌
Device Fingerprint Risk IdentificationSecondary packagingAbility to identify secondary packaged unofficial apps✅❌❌❌❌✅❌
Replay attackAbility to identify replay attacks✅❌❌❌❌❌❌
Device location information has been tampered withAbility to identify tampering of location information✅✅❌✅✅✅-
No SIM card insertedCan identify whether the device is inserted with a SIM card✅❌❌✅✅✅✅
The device uses an HTTP proxyCan identify HTTP proxy risks✅❌❌❌❌❌✅
The device uses a VPN proxyCan identify VPN proxy risks✅❌❌❌❌✅❌
JailbreakAbility to identify jailbreak risks✅❌✅❌✅✅✅
The device is an emulatorAbility to recognize emulators✅❌✅❌✅✅❌
The device uses the machine modification tool to modify the device parameter informationAbility to identify mainstream modification tools✅❌❌❌✅✅❌
The device has scripts and group control tools installed (tools that are used to control multiple devices from single terminal - device farm/device group)Can identify mainstream scripting/group control tools✅❌❌❌❌✅❌
The device is equipped with an M chipDevices capable of recognizing M-chips✅❌❌❌✅✅-
The device is not logged into the iCloud accountAble to identify login iCloud account✅❌✅❌❌❌❌
Security and StabilityCode ProtectionThe device fingerprint SDK and JS have code protection mechanisms (such as VMP), which effectively resist black hat cracking attempts to manipulate code logic and falsify data✅ (OLLVM, VMP)❌❌❌❌❌❌
DowngradeIntercepting and sending collection requests in the iOS environment can still generate device fingerprints normally✅✅✅✅✅✅✅
Anti packet captureiOS has the ability to prevent packet capture✅❌❌❌❌❌✅
## License
This library is MIT licensed. Copyright trustdecision, Inc. 2022.