The bluetooth pairing issue After iOS 14 Beta 3

Viewed 445

We used iOS App to be a peripheral and device as a central, and follow the CBPeripheralManager Sample to implement BLE pairing flow.

And FW follows the SMP (Security Manage Protocol) implementation, so that we need the IRK (Identity Resolving Key) to finish the pairing flow.

NSDictionary *options = @{CBPeripheralManagerOptionRestoreIdentifierKey:@"IdentifierKey",
                            CBPeripheralManagerOptionShowPowerAlertKey:[NSNumber numberWithBool:YES]}
CBPeripheralManager *peripheralManager  = [[CBPeripheralManager alloc] initWithDelegate:self
                                                                                    queue:nil
                                                                                options:options];
[peripheralManager startAdvertising:@{CBAdvertisementDataServiceUUIDsKey : @[serviceUUID]}];

Unfortunately, there is something wrong with iOS 14 Beta 3 and later versions.

Till iOS 14 beta 2:

After didSubscribeToCharacteristic: delegate we can see a system pairing bluetooth permission dialog is popped up on the iPhone, while user click ok, FW can get the IRK response from iOS

iOS 14 beta 3 and later versions (Beta 3 ~ Beta 7):

After didSubscribeToCharacteristic: delegate we can not see a system pairing bluetooth permission dialog is popped up on the iPhone, so that FW can not get the IRK response from iOS

In my opinion, I guess the SMP pairing flow was finished when user clicked the "OK" button on the pairing dialog, for our device could receive the IRK response and finish the pairing flow, to create the bond between device & phone. But by some unknown mistake the alert will not jump after iOS 14 beta 3 so the SMP pairing flow could not be finished.

Does anyone have experience to implement BLE flow like this or meet the same problem, and is there any suggestion to resolve this issue? Many thanks.

0 Answers
Related