How to pair specific BLE devices with designated iOS devices with multiple iOS devices and BLE devices in the same vicinity?

We need a method to uniquely pair 4 phones to 4 Bluetooth LE devices (each phone connects to one BLE device). They will all be operating at the same time, in the same room.

On Android we store a list of MAC addresses of the BLE devices and the phone app lets the user select which device to connect. On Apple, MAC addresses can not be read when peripherals are discovered, so we are stuck.

The preferred Apple approach seems to be to connect to a BLE device, then read its serial number, and check if it is the correct device. However, if we have 4 BLE devices all active at the same time, we could get stuck in an infinite loop where the phone keeps reconnecting to the same BLE device, finding it has the wrong serial number, disconnecting, ad infinitum.

The "UUID encrypted MAC address" seems like a bad workaround. It would require all 4 users to wait for each other while they uniquely pair. If anyone accidentally left their BLE device on while another person was pairing, things could break.

How do we solve this problem?

How to pair specific BLE devices with designated iOS devices with multiple iOS devices and BLE devices in the same vicinity?
 
 
Q