Installation
Install the VECU React Native Wallet SDK into your application and prepare your host app for device-based flows.
Host App Changes Required
Before testing QR, scan, or proximity-based flows, your application must
declare the required device permissions in its native app configuration.
Camera access is required for QR-based experiences. Bluetooth-related
permissions may also be required for proximity or wallet exchange flows. Add
the required entries in your app's AndroidManifest.xml and Info.plist
before device testing.
Documentation Scope
This guide stays at the integration level for external clients. It covers package setup, peer dependencies, and the host app requirements you need to know before rendering SDK screens.
Prerequisites
- React Native 0.81.0 or later
- React 19 or later
- Node.js 18 or later
- Access to the Cox Automotive package registry
- A host application where you can update iOS and Android app configuration
Step 1: Configure Package Access
The SDK is distributed through Cox Automotive's package registry. Add or update
your project's .npmrc:
registry=https://artifactory.coxautoinc.com/artifactory/api/npm/cai-npm/
//artifactory.coxautoinc.com/artifactory/api/npm/:_auth=YOUR_AUTH_TOKEN
//artifactory.coxautoinc.com/artifactory/api/npm/cai-npm/:_auth=YOUR_AUTH_TOKEN
email=your.email@company.com
always-auth=true
Replace YOUR_AUTH_TOKEN with the registry token issued to your team.
Step 2: Install the SDK
bash pnpm add @vecu/wallet-react-native-sdk Step 3: Install Peer Dependencies
The SDK requires react-native-svg for rendering credential and barcode UI:
pnpm add react-native-svg
If your app uses Expo or additional device integrations, your project may also need supporting packages managed by your host application.
Optional Flow-Specific Dependencies
Some SDK flows require additional native packages in the host application.
- QR scanning flows may require
react-native-vision-camera - QR display flows may require
react-native-qrcode-svg - NFC send flows may require
react-native-hce - NFC receive flows may require
react-native-nfc-manager - Bluetooth or proximity send flows may require
react-native-ble-peripheral - Connectivity-aware behavior may require
@react-native-community/netinfo
Install only the packages needed for the flows your application enables.
Step 4: Update Your Host App Configuration
Before running the SDK on a device, update your app's native configuration.
Camera Permission
Your application must declare camera access for QR-based experiences such as scanner-driven flows.
- Android: add the required camera permission entries in
AndroidManifest.xml - iOS: add the required camera usage description in
Info.plist
Bluetooth Permissions
If your integration uses proximity or wallet exchange flows, your application must also declare the appropriate Bluetooth-related permissions.
- Android: add the required Bluetooth and nearby-device entries in
AndroidManifest.xml - iOS: add the required Bluetooth usage description entries in
Info.plist
NFC Setup
If your integration uses verifier-initiated NFC receive flows, your iOS host app
must include the VECU ISO7816 AID in Info.plist and enable the NFC reader
session entitlement. See Permissions
for the exact Info.plist and entitlement entries.
Platform Configuration
The exact native entries may vary based on OS version, target SDK level, and your host app setup. This documentation intentionally stays high level. Your mobile team should verify the final permission set in the app project before release.
Step 5: Platform-Specific Final Setup
Complete the remaining platform-specific setup in your host application before testing on devices.
iOS
Install CocoaPods dependencies for your iOS app:
cd ios
pod install
cd ..
Android
There is no separate Android dependency installation step for the SDK after package installation, but your Android app must include the required manifest entries for the flows you enable.
- Verify camera permissions are declared in
AndroidManifest.xml - Verify Bluetooth or nearby-device permissions are declared when applicable
Step 6: Verify Installation
At a high level, installation is complete when:
- the package resolves in your app
- peer dependencies are installed
- iOS pods are installed
- host app permissions are configured
The next step is to mount the SDK in your app and render the wallet experience.