Audience

 A new security feature from iOS13 xCode11 requires users to give permissions before establishing a Bluetooth connection over SSI BLE, which effects   some of our Bluetooth scanners that support SSI BLE. If a user does not grant permission, then the application will crash when attempting to establish   a Bluetooth connection. Additionally, established connections will disconnect when the application moves into the background unless an additional   permission is added for background Bluetooth usage.  

  In order to support these changes, please follow the steps below: 

  1. New security feature from iOS13 xCode11 prevents establishing the Bluetooth connection if user does not give permission.  If no permission from User, the app appears exiting (crashing).
  2. Established connection will disconnect when moving the application to the background unless adding permission for background mode .
  3. App exit if user does not allow the Bluetooth connection
  4. To resolve the Bluetooth Permission Issue:

     Please edit info.plist file :

  • Add the correct permission
    <!-- iOS 10+ -->
    
    <key>NSBluetoothPeripheralUsageDescription</key>
    
    <string>Allow communication with the scanner.</string>
    
     
    
    <!-- iOS 13+ -->
    
    <key>NSBluetoothAlwaysUsageDescription</key>
    
    <string>Allow communication with the scanner.</string>
    
    
  • Add supported accessories (optional):
    <key>UISupportedExternalAccessoryProtocols</key>
    
    <array>
    
      <string>com.zebra.scanner.SSI</string>
    
      <string>com.motorolasolutions.scanner</string>
    
      <string>com.motorolasolutions.CS4070_ssi</string>
    
    </array>
    
    
  • Add background modes (optional):
 <key>UIBackgroundModes</key>

   <array>

   <string>external-accessory</string>

   <string>bluetooth-central</string>

   </array>