React Native SDK Installation
Get started with the DoorstepAI React Native SDK to add intelligent delivery tracking to your cross-platform application.
Prerequisites
Before you begin, ensure you have:
- React Native 0.60+ with autolinking support
- Valid API Key from DoorstepAI
- iOS 14+ and Android API level 21+ deployment targets
- Node.js 14+ and npm/yarn
We recommend using the latest stable version of React Native for the best development experience and access to the latest platform features.
Installation
Install the Package
Add the DoorstepAI React Native SDK to your project:
npm install @doorstepai/dropoff-sdk
# or
yarn add @doorstepai/dropoff-sdk
iOS Setup
For iOS, install the native dependencies:
cd ios && pod install && cd ..
Android Setup
For Android (React Native 0.60+), the SDK will be automatically linked via autolinking—no additional manual steps are required.
Platform-Specific Configuration
iOS Configuration
Update your ios/YourApp/Info.plist
file with the required permissions:
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app requires access to your location for enhanced delivery intelligence</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app requires access to your location for enhanced delivery intelligence</string>
<key>NSMotionUsageDescription</key>
<string>This app requires access to motion data for enhanced delivery intelligence</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
</dict>
Android Configuration
Update your android/app/src/main/AndroidManifest.xml
file with the required permissions:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourapp.package">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature android:name="android.hardware.sensor.accelerometer" />
<uses-feature android:name="android.hardware.sensor.gyroscope" />
<uses-feature android:name="android.hardware.sensor.barometer" />
<uses-feature android:name="android.hardware.sensor.compass" />
<uses-feature android:name="android.hardware.sensor.proximity" />
<application>
<!-- Your app components -->
</application>
</manifest>
Permission Requirements
Permission | Purpose | Platform | Runtime Required |
---|---|---|---|
ACCESS_FINE_LOCATION | Precise location tracking | Android | ✅ Yes |
ACCESS_COARSE_LOCATION | Approximate location | Android | ✅ Yes |
ACCESS_BACKGROUND_LOCATION | Background location access | Android | ✅ Yes |
ACTIVITY_RECOGNITION | Motion and activity detection | Android | ✅ Yes |
FOREGROUND_SERVICE | Background processing | Android | ❌ No |
FOREGROUND_SERVICE_LOCATION | Location foreground service | Android | ❌ No |
FOREGROUND_SERVICE_DATA_SYNC | Data sync foreground service | Android | ❌ No |
POST_NOTIFICATIONS | Delivery notifications | Android | ✅ Yes (API 33+) |
WAKE_LOCK | Keep device awake during tracking | Android | ❌ No |
ACCESS_WIFI_STATE | WiFi state access | Android | ❌ No |
ACCESS_NETWORK_STATE | Network state access | Android | ❌ No |
INTERNET | Network communication | Android | ❌ No |
NSLocationWhenInUseUsageDescription | Location access during app usage | iOS | ✅ Yes |
NSLocationAlwaysAndWhenInUseUsageDescription | Background location access | iOS | ✅ Yes |
NSMotionUsageDescription | Motion and sensor data | iOS | ✅ Yes |
Starting with Android 13 (API level 33), apps must request the POST_NOTIFICATIONS
permission at runtime.
Verification
To verify the installation was successful:
-
Build your project:
# iOS
npx react-native run-ios
# Android
npx react-native run-android -
Check for import errors in files using the SDK
-
Verify permissions are properly configured in platform-specific files
Import Test
Try importing the SDK in your React Native app:
import { DoorstepAI, RootDoorstepAI } from '@doorstepai/dropoff-sdk';
// Test basic import
console.log('DoorstepAI SDK imported successfully');
Troubleshooting Installation
Common Issues
Build Errors
- Error: "Could not resolve dependency"
- Solution: Check internet connection and verify the package name
- Solution: Ensure you're using the correct version number
iOS Pod Install Issues
- Error: "Pod install failed"
- Solution: Run
cd ios && pod install --repo-update && cd ..
- Solution: Clean build folder:
cd ios && xcodebuild clean && cd ..
- Solution: Run
Android Build Issues
- Error: "Native module not found"
- Solution: Ensure autolinking is enabled (React Native 0.60+)
- Solution: Clean and rebuild:
cd android && ./gradlew clean && cd ..
Next Steps
Now that you have the SDK installed and configured:
- 📚 Learn SDK Usage - Initialize and use the SDK
- 💡 View Examples - See complete implementation examples
Head over to our Usage Guide to learn how to implement the SDK and start using delivery tracking in your React Native app.