@complycube/react-native
v1.2.1
Published
ComplyCube's React Native Mobile SDK library for Identity Verification, KYC, and AML
Maintainers
Readme
ComplyCube React Native SDK
The official React Native SDK for integrating ComplyCube's Identity Verification UI into your mobile app.
ComplyCube enables you to automate your AML/KYC workflows effortlessly.
Documentation and minimum requirements can be found at https://docs.complycube.com/documentation/guides/mobile-sdk-guide.
Installation
Install the SDK
Install the React Native library by running:
npm install --save @complycube/react-nativeCocoaPods
Before using the ComplyCube SDK, install the CocoaPods plugin by running the following command in your terminal:
sudo gem install cocoapodsOpen your
ios/Podfileand add the following configuration:source 'https://github.com/CocoaPods/Specs.git' platform :iOS, '13.0' target 'YourApp' do use_frameworks! use_modular_headers! # Other existing pod configurations post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |build_configuration| build_configuration.build_settings['ENABLE_BITCODE'] = 'NO' build_configuration.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES' build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.1' build_configuration.build_settings['ARCHS'] = ['$(ARCHS_STANDARD)', 'x86_64'] build_configuration.build_settings['GENERATE_INFOPLIST_FILE'] = 'YES' end end end $static_frameworks = [ 'react-native-blurhash', 'RNScreens', 'RNScreen', 'RNCMaskedView', 'RNReactNativeHapticFeedback', 'RNReanimated' ] pre_install do |installer| Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {} installer.pod_targets.each do |target| if $static_frameworks.include?(target.name) puts "Overriding the static_framework method for #{target.name}" def target.build_type; Pod::BuildType.static_library end end end end endSave the
Podfile.Run
pod installin youriosdirectory to install the pods and apply the configurations.
Application Permissions
Our SDK uses the device camera and microphone for capture. You must add the following keys to your application's ios/Info.plist file.
NSCameraUsageDescription<key>NSCameraUsageDescription</key> <string>Used to capture facial biometrics and documents</string>NSMicrophoneUsageDescription<key>NSMicrophoneUsageDescription</key> <string>Used to capture video biometrics</string>
Android
Our SDK is available on Maven Central.
Update your application's android/build.gradle file with the ComplyCube SDK repository Maven settings and SDK dependency:
repositories {
mavenCentral()
}
dependencies {
implementation "com.complycube:complycube-sdk:+"
}Getting Started
Visit our step-by-step guide to quickly get started with our SDK.
Compatibility
We continuously validate this SDK against a moving React Native matrix:
- Latest stable version
- Two previous stable minors
- Two prerelease tags (future)
Both old and new architectures are covered using legacy interop. Details and local commands are in COMPATIBILITY.md.
Expo (prebuild)
This package ships an Expo config plugin to configure iOS/Android permissions and Podfile settings required by the SDK.
Add the plugin to your app config:
{
"expo": {
"plugins": [
[
"@complycube/react-native",
{
"cameraPermission": "Used to capture facial biometrics and documents",
"microphonePermission": "Used to capture video biometrics",
"enableNfc": false
}
]
]
}
}Then run:
npx expo prebuild --cleanTelemetry Events
You can subscribe to telemetry/custom events emitted by the SDK:
import { subscribe } from '@complycube/react-native';
const unsubscribe = subscribe((message) => {
// message can be a string or a JSON string depending on platform
console.log('ComplyCube event:', message);
});
// later, when you no longer need events
unsubscribe();More Documentation
Our Mobile SDK integration documentation and code examples can be found at https://docs.complycube.com/documentation/guides/mobile-sdk-guide.
Our sample React Native Mobile SDK project can be found at https://github.com/complycube/complycube-react-native-sdk.
Further information on ComplyCube can be found at https://www.complycube.com.
Reviewer Guide
This section summarizes the code architecture, native bridge, CI/CD, and the example app to help with reviews.
Architecture Overview
- React Native/TypeScript source lives in
src/. The public JS API and legacy wrapper are insrc/ComplyCube.tsandsrc/ComplyCubeSDK.ts. - The TurboModule spec used by the JS layer is defined in
src/NativeComplyCubeModule.ts. - Android native implementation is Kotlin under
android/src/main/java/(entry module:android/src/main/java/com/complycubereactnative/ComplyCubeModule.kt). - iOS native implementation is Swift under
ios/Sources/, with the RN bridge inios/Sources/Bridge/ComplyCubeRN.swiftand Objective‑C shim inios/Sources/Bridge/ObjCShims/ComplyCubeRNSDKBridge.m.
React Native ↔ Native Bridge
- JS calls into native via the TurboModule interface when available, with a fallback to legacy
NativeModulesfor older RN setups. - Events are emitted from native to JS using
NativeEventEmitter(iOS) andDeviceEventEmitter(Android). - The unified API surface in
src/ComplyCube.tsnormalizes success, error, and cancel events and exposes asubscribehelper for telemetry/custom events.
CI/CD (GitHub Actions)
.github/workflows/compat.ymlruns a React Native compatibility matrix (old/new architecture) for Android, iOS, and Expo, on PRs, main pushes, releases, and a weekly schedule..github/workflows/native_mapping_coverage.ymlruns Android unit tests with JaCoCo and iOS unit tests with Xcode coverage, then publishes a coverage summary..github/workflows/npm_jfrog_*run npm install/test and upload coverage to Codecov ondevelopandmain. The publish step is currently commented out in the develop workflow.
Example App
- The example project is in
example/with its ownexample/README.md. - It contains iOS and Android native projects under
example/iosandexample/androidfor validating the SDK integration end‑to‑end.
