Skip to main content

FAQ

Barcode Scanner SDK

General Questions

  • How can I get a trial license for the Scanbot SDK?
    • Generate a 7-day trial license for your project here!
  • Can I extend my trial license?
    • Please discuss an extension of your trial license directly with our Sales Team (sdk@scanbot.io).
  • How do I best store the license key?
    • As our SDK works fully offline there is no way to adjust the license key once integrated into your App and an update will be necessary.

You can host the license keys on your own servers and have the mobile clients check for the licenses on a regular basis. This ensures, that you can easily swap the license keys on your server without pushing updates. This can for example be done via Firebase.

We also offer multi-year contracts (such as 3 years licensing periods) to only have the update come by every 3 years.

As a customer, you can also reach out to us within your current license run time if you release small bugfix updates. You can then request a new SDK license earlier which we are more than happy to generate for the remaining and new license run time.

  • My App stopped working, what do I do?
    • Please check if the license key is correctly set in your app. You can find information on how to do that in the "Get Started" section of the corresponding Scanbot SDK documentation for your platform. Furthermore, please make sure your trial license has not expired yet.

Please also make sure you have inserted the license key string exactly as provided in the license file. The line breaks \n in the license key string are important and may not be removed.

  • My example app crashes after some time / after x images, what do I do?
    • Our example apps do not contain a Scanbot SDK license key and run in a trial mode (trial period of 1 minute). After the trial period is over the Scanbot SDK functions will stop working. The UI components (like Scanning UI) will stop working or may be terminated. You have to restart the app to get another trial period.
  • Which types of barcodes can I scan?
    • Scanbot SDK supports all common Barcode-, QR Code-, and Data Matrix Code formats. Please find a full list of all supported symbologies here.
  • There is an additional number added to the scan result
    • The actual article number is "5127180". A "0" has been placed behind the article number. The 0 at the end is the check digit.

Currently, there's no option in the SDK to cut the check digit from the result before returning it. This needs to be done in the code.

  • Parentheses / ]C1 is stripped from the barcode result
    • Parenthesis / ]C1 are not part of the barcode itself and if required for your system need to be added in the parser

iOS

  • NSException Could not load NIB in bundle: NSBundle
    • Set storyboard segue to a view that has a SBSDKScannerViewController as the controller class.
  • Are you supporting the iOS simulator for M1 Macs?
    • If you are using M1 Macs please run Xcode under Rosetta2. Please follow these steps:
      • find Xcode.app in Finder.
      • Select it and press Cmd+I.
      • This will open the info popup. There should be a checkbox "Run with Rosetta 2"
      • Enable it, and restart Xcode.
    • if the above solution does not work please follow the below instructions.
      • Xcode 12.3 has a new workspace validation step that is enabled in strict mode by default in projects generated with earlier versions of Xcode.
      • The workspace validation is run before our architect-stripping script is run after the build phase. Xcode now of course finds a framework that contains architectures for devices and simulators and quits the build process with a premature error.
      • To build successfully you need to go to your app targets build settings, locate the Validate Workspace entry, set it to YES, and then set it to NO again.
      • This will add the entry `VALIDATE_WORKSPACE = NO;' to your project file (before this entry simply was absent) and your app will build and distribute fine again. We believe that this is a bug with Xcode 12.3 and will be fixed with the next iteration of Xcode.

Android

  • Does your Android SDK support Huawei's HarmonyOS?
    • Yes, Scanbot SDK features can be integrated into a HarmonyOS app.
  • I'm using ScanbotCameraXView or RTU UI with CameraX enabled and my app does not execute correctly in an emulator.
    • Please update the emulator to version 31.3.13 to solve this issue.

Before version 31.3.13 this was an issue inside the emulator. It only worked when the 'Emulated' camera type was selected in the Advanced settings of an emulator

alt

Starting with the 31.3.13 emulator version, 'VirtualScene' setting is also applicable, which allows you to load an image into the camera preview and end-to-end test your application with the Scanbot SDK.

  • Adding your SDK to my Android app drastically increases the size of my app.
    • Please check your ABI Settings - see our docs. Each ABI contains native lib files and increases the APK size. We recommend to support "arm64-v8a" and "armeabi-v7a" in any case. Support for "x86" or "x86_64" highly depends on your use case. If you are developing a B2C app and don't have some special (in-house) enterprise devices like Zebra, you can remove these architectures from the release/production build and keep them only for your CI/test/debug build. You can control this via Gradle. If you have to support all of these architectures or in general want to optimize the size of the final APK, we highly recommend going with the new "Android App Bundle" approach. The ARM 64-bit architecture ("arm64-v8a") is the most common one. ARM 32-bit architecture ("armeabi-v7a") is the old one and deprecated. It is used by some very old devices like Samsung Galaxy S3, etc. "x86" and "x86_64" are typically used on emulators, but also on some older or very rare Android devices. Furthermore, some enterprise Android tablets like Zebra, or some Chromebooks are based on "x86" or "x86_64". However, most of them are also compatible with the ARM architecture. So please choose which devices (architectures/ABIs) you need to support.
  • I'm getting the error: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class io.scanbot.sdk.ui.camera.ScanbotCameraXView
    • Please ensure that the Scanbot SDK is initialized before using any UI components like ScanbotCameraView or other SDK functions.
  • I got a (trial) license key and integrated it in my app. But now the app crashes.

OR

  • I am getting the error: A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 6627 ...
    • Please make sure the application ID (on Android) or bundle ID (on iOS) of your app matches the license keys we generated for you. If you are testing our example apps with your license key, please adjust the application/bundle ID accordingly.

Please also make sure you have inserted the license key string exactly as provided in the license file. The line breaks \n in the license key string are important and may not be removed.

  • I'm getting the error Java.Lang.UnsatisfiedLinkError: Please adjust the Android ABI settings of your project. Then, clean and rebuild the project, remove the debug app from the device, and reinstall it
  • I am getting the error: No version of NDK matched the requested version XX.X.XXXXXXX
    • To install the compatible NDK in Android Studio for Scanbot SDK, do the following:
      1. Open "Preferences" in Android Studio and navigate to "Android SDK".
      2. In the tab "SDK Tools" activate the checkbox "Show Package Details".
      3. Select the desired NDK version XX.X.XXXXXXX and install it.

alt

Xamarin

  • SBSDK properties are null
    • This issue is a race condition inside Xamarin.Forms. It may happen on both iOS and Android, depending on the device's hardware as well as the Xamarin.Forms version.
    • Solution: Force registration of native dependencies. Please add the following lines to your MainActivity and AppDelegate, respectively:
ScanbotBarcodeSDK.Forms.Droid.DependencyManager.Register(); 
ScanbotBarcodeSDK.Forms.iOS.DependencyManager.Register();

Web

  • Is there a configuration to turn on the torch function (flashlight) for mobile cameras?
    • Yes, we offer the functionality to control the device's torch. For technical reasons, this is currently only supported on Chrome on Android. We offer a function to explicitly check if torch control is available for the currently used camera. Please see the documentation for your selected scanner for more details.
  • Is there a setting to define a search area or increase the camera resolution?
    • You can adjust the resolution by using the configuration parameter videoConstraints. However, the default resolution for our SDK already is 4K.
videoConstraints: MediaTrackConstraints = {
width: { ideal: 3840 },
height: { ideal: 2160 },
};
  • What is the ideal aspectRatio setting for mobile phones to scan barcodes?
    • Using a 4/3 aspectRatio will covers the entire screen. Since the camera area is so big, it might slow down the detection.

If you want to keep the aspect ratio but decrease the size, you can use the configuration parameter widthProportion which defines the length proportion of finder. For example, aspectRatio: 1, widthProportion: 0.5, defines a square finder with the half length of available screen length

If you are mostly scanning barcodes an aspect ratio of 2:1, or 3:1 would be recommended.

  • Is there a setting for exposure control?

    • Similar to the torch feature, exposure and advanced camera settings are also unstable because of device and browser variations.
  • Problems focusing on iPhone 14 and 14 Pro Max

    • The iPhone 14 Pro (and Pro Max) camera focus problem occurs because these models have a bigger minimal focus distance. That's most likely because of the increased size of the iPhone 14 Pro camera sensor combined with the new optical formula. The straightforward solution is to default to the wide-angle camera via the ScanbotSDK scanner handle function:
      IBarcodeScannerHandle.switchCamera("Back Ultra Wide Camera");
      An additional problem with this is that Back Ultra Wide Camera was made available to the browser API as of iOS 16.3. If your iPhone 14 Pro is running an older iOS version, your only option is to update.

Document Scanner SDK

General Questions

  • How can I get a trial license for the Scanbot SDK?
    • Generate a 7-day trial license for your project here!
  • Can I extend my trial license?
    • Our Sales team is happy to discuss an extension of your trial license. Please feel free to reach out to sdk@scanbot.io
  • How do I best store the license key?
    • As our SDK works fully offline there is no way to adjust the license key once integrated in your App and an update will be necessary.

You can host the license keys on your own servers and have the mobile clients check for the licenses on a regular basis. This ensures, that you can easily swap the license keys on your server without pushing updates. This can for example be done via Firebase.

We also offer multi-year contracts (such as 3 years licensing periods) to only have the update come by every 3 years.

As a customer, you can also reach out to us within your current license run time if you release small bugfix updates. You can then request a new SDK license earlier which we are more than happy to generate for the remaining and new license run time.

  • My App stopped working, what do I do?
    • Please check if the license key is correctly set in your app. You can find information on how to do that in the "Get Started" section of the corresponding Scanbot SDK documentation for your platform. Furthermore, please make sure your trial license has not expired yet.

Please also make sure you have inserted the license key string exactly as provided in the license file. The line breaks \n in the license key string are important and may not be removed.

  • My example app crashes after some time / after x images, what do I do?
    • Our example apps do not contain a Scanbot SDK license key and run in a trial mode (trial period of 1 minute). After the trial period is over the Scanbot SDK functions will stop working. The UI components (like Scanning UI) will stop working or may be terminated. You have to restart the app to get another trial period.
  • Do I need high DPI values?
    • DPI is not relevant when creating image files like JPG or PNG. It's all about resolution (pixels) when working with image files. The image resolution simply depends on the camera device. The quality (resolution) of an image file is not affected by the DPI value. The DPI value is just meta-data stored in the image header. The cameras of all iOS and Android devices store 72 DPI values in the JPG image header files (since 72 DPI is an old standard for web images). The Scanbot SDK does not use this value in any way when creating or modifying scanned image files. The DPI value only matters when you want to print an image on paper. However, you can also specify (or overwrite) the desired DPI value when sending an image file to a printer.

iOS

  • NSException Could not load NIB in bundle: NSBundle
    • Set storyboard segue to a view that has a SBSDKScannerViewController as the controller class.
  • Are you supporting the iOS simulator for M1 Macs?
    • If you are using M1 Macs please run Xcode under Rosetta2. Please follow these steps:
      • find Xcode.app in Finder.
      • Select it and press Cmd+I.
      • This will open the info popup. There should be a checkbox "Run with Rosetta 2"
      • Enable it, and restart Xcode.
    • if the above solution does not work please follow the below instructions.
      - Xcode 12.3 has a new workspace validation step that is enabled in strict mode by default in projects generated with earlier versions of Xcode.
      - The workspace validation is run before our architect-stripping script is run after the build phase. Xcode now of course finds a framework that contains architectures for devices and simulators and quits the build process with a premature error.
      - To build successfully you need to go to your app targets build settings, locate the Validate Workspace entry, set it to YES, and then set it to NO again.
      - This will add the entry `VALIDATE\_WORKSPACE = NO;' to your project file (before this entry simply was absent) and your app will build and distribute fine again.
      We believe that this is a bug with Xcode 12.3 and will be fixed with the next iteration of Xcode.

Android

  • Does your Android SDK support Huawei's HarmonyOS?
    • Yes, Scanbot SDK features can be integrated into a HarmonyOS app.
  • I'm using ScanbotCameraXView or RTU UI with CameraX enabled and my app does not execute correctly in an emulator.
    • Please update the emulator to version 31.3.13 to solve this issue.

Before version 31.3.13 this was an issue inside the emulator. It only worked when the 'Emulated' camera type was selected in the Advanced settings of an emulator

alt

Starting with the 31.3.13 emulator version, 'VirtualScene' setting is also applicable, which allows you to load an image into the camera preview and end-to-end test your application with the Scanbot SDK.

  • Adding your SDK to my Android app drastically increases the size of my app.
    • Please check your ABI Settings - see our docs. Each ABI contains native lib files and increases the APK size. We recommend to support "arm64-v8a" and "armeabi-v7a" in any case. Support for "x86" or "x86_64" highly depends on your use case. If you are developing a B2C app and don't have some special (in-house) enterprise devices like Zebra, you can remove these architectures from the release/production build and keep them only for your CI/test/debug build. You can control this via Gradle. If you have to support all of these architectures or in general want to optimize the size of the final APK, we highly recommend going with the new "Android App Bundle" approach. The ARM 64-bit architecture ("arm64-v8a") is the most common one. ARM 32-bit architecture ("armeabi-v7a") is the old one and deprecated. It is used by some very old devices like Samsung Galaxy S3, etc. "x86" and "x86_64" are typically used on emulators, but also on some older or very rare Android devices. Furthermore, some enterprise Android tablets like Zebra, or some Chromebooks are based on "x86" or "x86_64". However, most of them are also compatible with the ARM architecture. So please choose which devices (architectures/ABIs) you need to support.
  • I'm getting the error: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class io.scanbot.sdk.ui.camera.ScanbotCameraXView
    • Please ensure that the Scanbot SDK is initialized before using any UI components like ScanbotCameraView or other SDK functions.
  • I got a (trial) license key and integrated it in my app. But now the app crashes.

OR

  • I am getting the error: A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 6627 ...
    • Please make sure the application ID (on Android) or bundle ID (on iOS) of your app matches the license keys we generated for you. If you are testing our example apps with your license key, please adjust the application/bundle ID accordingly.

Please also make sure you have inserted the license key string exactly as provided in the license file. The line breaks \n in the license key string are important and may not be removed.

  • I'm getting the error Java.Lang.UnsatisfiedLinkError: No implementation found for long io.scanbot.sdk.core.contourdetector.ContourDetector.ctor() (tried Java_net_doo_snap_lib_detector_ContourDetector_ctor and Java_net_doo_snap_lib_detector_ContourDetector_ctor__) occurred
    • Please adjust the Android ABI settings of your project. Then, clean and rebuild the project, remove the debug app from the device, and reinstall it
  • I am getting the error: No version of NDK matched the requested version XX.X.XXXXXXX
    • To install the compatible NDK in Android Studio for Scanbot SDK, do the following:
      1. Open "Preferences" in Android Studio and navigate to "Android SDK".
      2. In the tab "SDK Tools" activate the checkbox "Show Package Details".
      3. Select the desired NDK version XX.X.XXXXXXX and install it.

alt

Xamarin

  • SBSDK properties are null
    • This issue is a race condition inside Xamarin.Forms. It may happen on both iOS and Android, depending on the device's hardware as well as the Xamarin.Forms version.
    • Solution: Force registration of native dependencies. Please add the following lines to your MainActivity and AppDelegate, respectively:
ScanbotBarcodeSDK.Forms.Droid.DependencyManager.Register(); 
ScanbotBarcodeSDK.Forms.iOS.DependencyManager.Register();

Data Capture SDK

General Questions

  • How can I get a trial license for the Scanbot SDK?
    • Generate a 7-day trial license for your project here!
  • Can I extend my trial license?
    • Our Sales team is happy to discuss an extension of your trial license. Please feel free to reach out to sdk@scanbot.io
  • How do I best store the license key?
    • As our SDK works fully offline there is no way to adjust the license key once integrated in your App and an update will be necessary.

You can host the license keys on your own servers and have the mobile clients check for the licenses on a regular basis. This ensures, that you can easily swap the license keys on your server without pushing updates. This can for example be done via Firebase.

We also offer multi-year contracts (such as 3 years licensing periods) to only have the update come by every 3 years.

As a customer, you can also reach out to us within your current license run time if you release small bugfix updates. You can then request a new SDK license earlier which we are more than happy to generate for the remaining and new license run time.

  • My App stopped working, what do I do?
    • Please check if the license key is correctly set in your app. You can find information on how to do that in the "Get Started" section of the corresponding Scanbot SDK documentation for your platform. Furthermore, please make sure your trial license has not expired yet.

Please also make sure you have inserted the license key string exactly as provided in the license file. The line breaks \n in the license key string are important and may not be removed.

  • My example app crashes after some time / after x images, what do I do?
    • Our example apps do not contain a Scanbot SDK license key and run in a trial mode (trial period of 1 minute). After the trial period is over the Scanbot SDK functions will stop working. The UI components (like Scanning UI) will stop working or may be terminated. You have to restart the app to get another trial period.

iOS

  • NSException Could not load NIB in bundle: NSBundle
    • Set storyboard segue to a view that has a SBSDKScannerViewController as the controller class.
  • Are you supporting the iOS simulator for M1 Macs?
    • If you are using M1 Macs please run Xcode under Rosetta2. Please follow these steps:
      • find Xcode.app in Finder.
      • Select it and press Cmd+I.
      • This will open the info popup. There should be a checkbox "Run with Rosetta 2"
      • Enable it, and restart Xcode.
    • if the above solution does not work please follow the below instructions.
      • Xcode 12.3 has a new workspace validation step that is enabled in strict mode by default in projects generated with earlier versions of Xcode.
      • The workspace validation is run before our architect-stripping script is run after the build phase. Xcode now of course finds a framework that contains architectures for devices and simulators and quits the build process with a premature error.
      • To build successfully you need to go to your app targets build settings, locate the Validate Workspace entry, set it to YES, and then set it to NO again.
      • This will add the entry `VALIDATE_WORKSPACE = NO;' to your project file (before this entry simply was absent) and your app will build and distribute fine again.

We believe that this is a bug with Xcode 12.3 and will be fixed with the next iteration of Xcode.

Android

  • Does your Android SDK support Huawei's HarmonyOS?
    • Yes, Scanbot SDK features can be integrated into a HarmonyOS app.
  • I'm using ScanbotCameraXView or RTU UI with CameraX enabled and my app does not execute correctly in an emulator.
    • Please update the emulator to version 31.3.13 to solve this issue.

Before version 31.3.13 this was an issue inside the emulator. It only worked when the 'Emulated' camera type was selected in the Advanced settings of an emulator

alt

Starting with the 31.3.13 emulator version, 'VirtualScene' setting is also applicable, which allows you to load an image into the camera preview and end-to-end test your application with the Scanbot SDK.

  • Adding your SDK to my Android app drastically increases the size of my app.
    • Please check your ABI Settings - see our docs. Each ABI contains native lib files and increases the APK size. We recommend to support "arm64-v8a" and "armeabi-v7a" in any case. Support for "x86" or "x86_64" highly depends on your use case. If you are developing a B2C app and don't have some special (in-house) enterprise devices like Zebra, you can remove these architectures from the release/production build and keep them only for your CI/test/debug build. You can control this via Gradle. If you have to support all of these architectures or in general want to optimize the size of the final APK, we highly recommend going with the new "Android App Bundle" approach. The ARM 64-bit architecture ("arm64-v8a") is the most common one. ARM 32-bit architecture ("armeabi-v7a") is the old one and deprecated. It is used by some very old devices like Samsung Galaxy S3, etc. "x86" and "x86_64" are typically used on emulators, but also on some older or very rare Android devices. Furthermore, some enterprise Android tablets like Zebra, or some Chromebooks are based on "x86" or "x86_64". However, most of them are also compatible with the ARM architecture. So please choose which devices (architectures/ABIs) you need to support.
  • I'm getting the error: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class io.scanbot.sdk.ui.camera.ScanbotCameraXView
    • Please ensure that the Scanbot SDK is initialized before using any UI components like ScanbotCameraView or other SDK functions.
  • I got a (trial) license key and integrated it in my app. But now the app crashes.

OR

  • I am getting the error: A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 6627 ...
    • Please make sure the application ID (on Android) or bundle ID (on iOS) of your app matches the license keys we generated for you. If you are testing our example apps with your license key, please adjust the application/bundle ID accordingly.

Please also make sure you have inserted the license key string exactly as provided in the license file. The line breaks \n in the license key string are important and may not be removed.

  • I'm getting the error Java.Lang.UnsatisfiedLinkError: No implementation found for long io.scanbot.sdk.core.contourdetector.ContourDetector.ctor() (tried Java_net_doo_snap_lib_detector_ContourDetector_ctor and Java_net_doo_snap_lib_detector_ContourDetector_ctor__) occurred
    • Please adjust the Android ABI settings of your project. Then, clean and rebuild the project, remove the debug app from the device, and reinstall it
  • I am getting the error: No version of NDK matched the requested version XX.X.XXXXXXX
    • To install the compatible NDK in Android Studio for Scanbot SDK, do the following:
      1. Open "Preferences" in Android Studio and navigate to "Android SDK".
      2. In the tab "SDK Tools" activate the checkbox "Show Package Details".
      3. Select the desired NDK version XX.X.XXXXXXX and install it.

alt

Xamarin

  • SBSDK properties are null
    • This issue is a race condition inside Xamarin.Forms. It may happen on both iOS and Android, depending on the device's hardware as well as the Xamarin.Forms version.
    • Solution: Force registration of native dependencies. Please add the following lines to your MainActivity and AppDelegate, respectively:
ScanbotBarcodeSDK.Forms.Droid.DependencyManager.Register(); 
ScanbotBarcodeSDK.Forms.iOS.DependencyManager.Register();

What do you think of this documentation?