Skip to content

Prevent bad actors from accessing the source code and manipulating the features on your iOS app

License

Notifications You must be signed in to change notification settings

sense-opensource/sense-app-protect-ios

Repository files navigation

Sense App Protect iOS

Welcome to Sense’s open source repository

🛡️ Device Integrity Checks

Frida Simulator Installed Apps VPN SIM Factory Reset Remote Control

Getting started with Sense

Sense is a device intelligence and identification tool. This tool collects a comprehensive set of attributes unique to a device or browser, forming an identity that will help businesses.

Requirements

  • OS 12.0 or above.
  • Swift version 5.0 and above

Note: If the application does not have the listed permissions, the values collected using those permissions will be ignored. To provide a valid device details, we recommend employing as much permission as possible based on your use-case.

Step 1 - Install SDK

 pod 'SenseOSProtect', '~> 0.0.2'

Step 2 - Import SDK

import SenseOSProtect

Step 3 - Add Delegate Method

Add the delegate method in your Controller Class file.

 SenseOSProtectDelegate

Step 4 - Get Device Details

Use the line below to invoke any button action or ViewDidLoad to get the DeviceDetails

let localPackageList: [(packageName: String, packageCode: String)] = [
                    (“Package Name”, “Package Code”)]        
        let config = SenseOSProtectConfig(installedAppList: localPackageList)
        SenseOSProtectSDK.initSDK(senseConfig: config, withDelegate: self)
        SenseOSProtectSDK.getSenseDetails(withDelegate: self)

Step 5 - Add your plist file

Add the bundle identifier name in your plist file, whatever you want.

	<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>whatsapp</string>
		<string>tez</string>
		<string>phonepe</string>
		<string>cred</string>
		<string>supermoney</string>
	</array>

Step 6 - Implement Delegate Method

Set and Implement our Delegate method to receive the Callback details

 extension ViewController: SenseOSProtectDelegate{
    func onFailure(message: String) {
        // Failure Callback.
    }
    func onSuccess(data: [String : Any]) {
        // Success Callback
    }
}

Sample Program

Here you can find the demonstration to do the integration.

import UIKit
import SenseOSProtect

class SenseOSController: UIViewController, SenseOSProtectDelegate {

  override func viewDidLoad() {
      super.viewDidLoad()
      let localPackageList: [(packageName: String, packageCode: String)] = [
                    (“Package Name”, “Package Code”)]      
        let config = SenseOSProtectConfig(installedAppList: localPackageList)
        SenseOSProtectSDK.initSDK(senseConfig: config, withDelegate: self)
        SenseOSProtectSDK.getSenseDetails(withDelegate: self)
  }
  @objc func onSuccess(data: String) {     
      // Handle success callback
  }
  @objc func onFailure(message: String) {
      // Handle failure callback
  }

}

Plug and play, in just 4 steps

1️⃣ Visit the GitHub Repository
2️⃣ Download or Clone the Repository. Use the GitHub interface to download the ZIP file, or run.
3️⃣ Run the Installer / Setup Script. Follow the setup instructions provided below.
4️⃣ Start Testing. Once installed, begin testing and validating the accuracy of the metrics you're interested in.

With Sense, you can

✅ Predict user intent : Identify the good from the bad visitors with precision
✅ Create user identities : Tokenise events with a particular user and device
✅ Custom risk signals : Developer specific scripts that perform unique functions
✅ Protect against Identity spoofing : Prevent users from impersonation
✅ Stop device or browser manipulation : Detect user behaviour anomalies

MIT license :

Sense OS is available under the MIT license

Contributors code of conduct :

Thank you for your interest in contributing to this project! We welcome all contributions and are excited to have you join our community. Please read these code of conduct to ensure a smooth collaboration.

Where you can get support :

Gmail [email protected]

Public Support:

For questions, bug reports, or feature requests, please use the Issues and Discussions sections on our repository. This helps the entire community benefit from shared knowledge and solutions.

Community Chat:

Join our Discord server (link) to connect with other developers, ask questions in real-time, and share your feedback on Sense.

Interested in contributing to Sense?

Please review our Contribution Guidelines to learn how to get started, submit pull requests, or run the project locally. We encourage you to read these guidelines carefully before making any contributions. Your input helps us make Sense better for everyone!