Hello,
I have some code to broadcast a BLE ad in Objective-C that worked well in Mojave, but has broken since moving to Catalina. The problem seems to stem from providing a value for the dispatch queue to the CBPeripheralManager instance versus NULL:
Calling _peripheralManager startAdvertising within CBPeripheralManagerDelegate peripheralManagerDidUpdateState works:
Calling _peripheralManager startAdvertising within CBPeripheralManagerDelegate peripheralManagerDidUpdateState does not work:
As I mentioned, both versions worked in Mojave, so something is different in Catalina that I'm not able to discern that causes the version where the dispatch queue is provided to not work.
Thanks,
Larry
I have some code to broadcast a BLE ad in Objective-C that worked well in Mojave, but has broken since moving to Catalina. The problem seems to stem from providing a value for the dispatch queue to the CBPeripheralManager instance versus NULL:
Calling _peripheralManager startAdvertising within CBPeripheralManagerDelegate peripheralManagerDidUpdateState works:
Code Block _peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:NULL];
Calling _peripheralManager startAdvertising within CBPeripheralManagerDelegate peripheralManagerDidUpdateState does not work:
Code Block dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); _peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:q];
As I mentioned, both versions worked in Mojave, so something is different in Catalina that I'm not able to discern that causes the version where the dispatch queue is provided to not work.
Thanks,
Larry