Skip to main content

Installing the React Native Barcode Scanner SDK

To install the Barcode Scanner SDK, run the following in your root project folder:

npm install react-native-scanbot-barcode-scanner-sdk

Integration with Expo​

Integration with Expo is possible only when using a Development Build, not Expo Go. The project is configurable using our config plugin or by manually configuring the native projects.

To utilize the plugin, add the following in your app config file:

"plugins": [
[
"react-native-scanbot-barcode-scanner-sdk",
{
"iOSCameraUsageDescription": "Barcode Camera permissions",
"androidCameraPermission": true,
"androidCameraFeature": true,
"mavenURLs": true
}
]
],
  • iOSCameraUsageDescription: Adds NSCameraUsageDescription in Info.plist. The permission can also be added via Expo Permissions
  • androidCameraPermission: Adds android.permission.CAMERA permission in AndroidManifest.xml. The permission can also be added via Expo Permissions
  • androidCameraFeature: Adds android.hardware.camera feature in AndroidManifest.xml
  • mavenURLs: Adds Scanbot Barcode Scanner SDK Maven URLs for Android local development. These URLs are already included in our package's build.gradle, but need to be added due to how Expo starts the Android app.
  • podfileSPMHookEnabled: Adds a hook to the Podfile to enable Swift Package Manager support for older versions of React Native 0.87. If you are using React Native 0.87 or newer, you can remove this hook from your Podfile.

iOS SPM Support​

The CocoaPods trunk repo is being deprecated, so the Scanbot iOS SDK is installed through Swift Package Manager (SPM) by default. React Native 0.87+ supports SPM out of the box, so no additional configuration is needed for these versions.

Podfile hook​

For React Native < = 0.86, add the scanbot_spm hook to the post_install block of your Podfile:

post_install do |installer|
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false,
)
scanbot_spm(installer)
end

Opting out of SPM (CocoaPods fallback)​

You can opt out and use the CocoaPods dependency instead. This only applies for versions that have a CocoaPods fallback.

Bare React Native projects​

To install the Scanbot iOS SDK through CocoaPods instead, set the $ScanbotSDKUseSPM flag to false at the top level of your Podfile, before the first target block:

$ScanbotSDKUseSPM = false

target 'MyApp' do
# ...
end

With the flag set, the scanbot_spm hook skips its work, so you can leave it in post_install. Run pod install again after changing the flag.

Expo​

The Scanbot config plugin always adds the scanbot_spm hook to your Podfile. To opt out of SPM, set podfileSPMHookEnabled to false in the plugin config. The plugin then also adds $ScanbotSDKUseSPM = false to your Podfile, and the hook skips its work.

{
"plugins": [
[
"react-native-scanbot-barcode-scanner-sdk",
{ "podfileSPMHookEnabled": false }
]
]
}

Want to scan longer than one minute?

Generate a free trial license to test the Scanbot SDK thoroughly.

Get free trial license