React Native

⚙️ Prerequisites for Integration – React Native

Before integrating the REL-ID API SDK into your React Native app, ensure the following prerequisites are met:

🛠️ Development Environment

  • Android Studio: Latest version installed
  • React Native Version: Compatible with SDK version v25.02.07.03???
  • Node Module: react-native-rdna-client provided by Uniken

📱 Android Requirements

  • Minimum SDK Version: 23 or higher
  • Target SDK Version: 35
  • AGP (Android Gradle Plugin) Version:
    • Current: 7.4
    • Supported Range: 7.3.0 to 7.4.2

🍏 iOS Requirements

  • Xcode Version: 14.3 or higher
  • Deployment Target: iOS 12.0 or above
  • Architectures Supported: arm64 and x86_64 only
    (Bitcode is not supported)

🔐 SDK Artifacts & Info Required (From REL-ID Admin)

  • Agent_info.txt: Contains the application ID (binary format)
    🔸 Must be bundled in the app and passed to the SDK during initialization.

  • Gateway Information:

    • Hostname/IP
    • Port where REL-ID Gateway is running
  • REL-ID SDK Node Module files from Uniken


💡 Notes

  • For installation and configuration details, refer to the Installation Guide
  • Network proxy setup might be required depending on your studio environment.

⚙️ REL-ID SDK Installation in React Native

This guide provides official steps to integrate the REL-ID API SDK Node Module into a React Native project.


📁 1. Node Module Structure

Extract the react-native-rdna-client.zip provided by Uniken. It includes:

  • Android/ – Android .aar and source files
  • iOS/ – iOS source files
  • src/ – Contains index.tsx, rdnastruct.tsx with APIs, enums, and structures

📥 2. Install the Node Module

Place the extracted folder in your project root, then run:

npm i ./react-native-rdna-client
🔧

If you're using React Native ≤ v0.69.x, update metro.config.js:

module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        inlineRequires: true,
      },
    }),
  },
};

🤖 3. Android Configuration

🔧 Add .aar Support in android/build.gradle

Under allprojects → repositories:

allprojects {
  repositories {
    google()
    maven { url("$rootDir/../node_modules/react-native/android") }
    flatDir {
      dirs "$rootDir/../node_modules/react-native-rdna-client/android/libs"
    }
  }
}

📦 Add packagingOptions for .so Conflicts

In android/app/build.gradle:

android {
  ...
  packagingOptions {
    pickFirst '**/armeabi/libc++_shared.so'
    pickFirst '**/armeabi-v7a/libc++_shared.so'
    pickFirst '**/x86/libc++_shared.so'
    pickFirst '**/arm64-v8a/libc++_shared.so'
    pickFirst '**/x86_64/libc++_shared.so'
  }
}

Add Permissions

The REL-ID API SDK and Mobile Threat Detection (MTD) modules require a predefined set of Android permissions to operate securely and effectively.


🍏 4. iOS Configuration

📦 Run CocoaPods

cd ios
pod install
cd ..

🛠 Update Info.plist

Ensure the following is included:

<key>Bundle name</key>
<string>$(PRODUCT_NAME)</string>
<key>Bundle display name</key>
<string>$(PRODUCT_NAME)</string>

Also, ensure your target's Build Settings includes the correct product name.

📋 Info.plist Permissions

To enable the full functionality of the REL-ID SDK—including identity verification, biometric authentication, geolocation-based risk analysis, and local network verification—your iOS app must declare specific permissions in the Info.plist file.

✅ You’re now ready to initialize and integrate the REL-ID SDK in your React Native application!


What’s Next

Install the REL-ID SDK in your React Native project