Deprecation warning

Please note that this is outdated documentation for an older release of the Scandit Barcode Scanner SDK.

We are deprecating the 5.x API on all platforms (except Linux). Release 5.19 in April 2021 will be our final. Applications running 5.x will continue to work, and we will continue to release critical bug fixes and security patches only, for one year. We encourage you to migrate to 6.x and take advantage of our latest / advanced features and improved performance.

You'll find the updated documentation at: Data Capture SDK Documentation for iOS

Troubleshoot iOS

App crashes when the barcode picker is shown

An app crash when showing the barcode picker can occur if there is a problem with our scanner and/or the way it is used in your app. Contact us at with a description of the problem (if possible with a code snippet or project) including details about your setup (iOS version, iOS device name, info whether our demo app works correctly).

Note that for versions prior to 4.12, the app could also crash when entering an invalid app key, or when using a test SDK without internet connection. This behavior has been changed as of 4.12. The invalid license message will be displayed in the barcode picker.

Barcode/2d code does not scan

When you are trying to scan a barcode/2d code, the code is not recognized.

  • Ensure that the symbology is enabled. Starting from Scandit Barcode Scanner 4.7 all symbologies are disabled by default and need to be explicitly enabled. This can be done by calling setSymbology:enabled: (SBSScanSettings). Also make sure that the scan settings instance is applied to the barcode picker, either by calling applyScanSettings:completionHandler: (SBSBarcodePicker), or by passing the scan settings to the barcode picker during initialization.
  • In case the symbology is enabled and the code does not scan, it is possible that the code is longer/shorter than the code lengths that are enabled by default. Check the symbology properties page for barcode lengths that are enabled by default.
  • When you have verified all of the above and the code still does not scan, contact us at with details on the device and sharp images of the barcode.

The scanner does not beep/vibrate or buttons are not visible

If the scanner is not beeping and/or vibrating, you are not seeing the button to switch the torch state or the button to change the camera, the app likely does not find the resources for it. Make sure that after you have copied the framework into your project you also copy the framework's bundle into the project separately. For this right click on the ScanditBarcodeScanner framework inside your project and select "Show in Finder". Go to ScanditBarcodeScanner.framework/Resources and drag and drop ScanditBarcodeScanner.bundle into your Xcode project. In the end it should look the following way:

Frameworks to be added

The code in the barcodePicker:didScan: callback is not executed

If for some reason nothing is happening after scanning check that

  • you have set the SBSBarcodePicker::scanDelegate correctly.
  • the barcodePicker:didScan: method is really executed (by for example adding a breakpoint inside it).
  • you are executing the code in the correct thread. The SBSScanDelegate method is invoked on a picker-internal queue. To perform any UI work, you must dispatch to the main UI thread. The same goes for other thread specific operations like performing CoreData changes where you have to make sure that you are inside the thread the managed context lifes in.

You were unable to find a solution to your Problem

If your specific problem does not have a solution on this page, contact us at with a description of the problem (if possible with a code snippet or project) including details about your setup (iOS version, iOS device name, info whether our demo app works correctly).