BLE in background mode functionality

Hi fellow devs,


We've stumbled upon the following issue when submitting the app to the review team. Would appreciate any input towads solving this. Thanks



Your app declares support for bluetooth-central and bluetooth-peripheral in the UIBackgroundModes key in your Info.plist, but does not provide Bluetooth Low Energy functionality. The Bluetooth Background modes are for applications that communicate to other devices using Bluetooth Low Energy and the Core Bluetooth framework.


The application uses BLE (Bluetooth low energy) technologies and there are configured in plist files.(please see the image bellow) This BC (bluetooth central) is used for beacons interactions with consumers and application sent data to server at every 10 seconds . What would an optimal interval be in your view?

The application interacts with hundreds of beacons dynamic. The only way to interact with radbeacons is on BLE,


Data there are sent to server secvential with those parameters (user_id, minor, major):



-(void)foundBeacon:(NSNumber *)bMajor minor:(NSNumber*)bMinor{

NSString* url = [NSString stringWithFormat:@"%@/beaconInteraction", locappyURL];

NSDictionary* params = [[NSDictionary alloc] initWithObjectsAndKeys:USER_ID,@"user_id",bMajor,@"major",bMinor,@"minor", nil];



Please be kind and sent us a review in this direction regarding BLE.







Next Steps


Please revise your app to add support for Bluetooth Low Energy communication through Core Bluetooth in your application or remove the bluetooth- values from the UIBackgroundModes key.

None of this actually is using the Core Bluetooth APIs, though; there's no CBCentralManager (or CBPeripheralManager) calls anywhere in what you quoted, just the CoreLocation callback for a beacon, so you don't need Bluetooth permissions; CoreLocation (part of the OS itself) will handle that portion for you. You only need to make sure to request permission (in code, not UIBackgroundModes) for region monitoring in order to receive beacon region updates.


I suspect that could be the cause of the Apple rejection.


Hopefully this helps!

BLE in background mode functionality
 
 
Q