iBeacon MAC Address on iOS

When working with iBeacons on iOS, people often wonder if they can access the Bluetooth MAC address of nearby devices. The short answer is no. iOS does not provide an API for retrieving the MAC addresses of Bluetooth peripherals, including iBeacons, even though devices openly transmit this information. This restriction aligns with Apple’s strong privacy and security policies, which limit developers to using only the officially provided Beacon identifiers: UUID, major, and minor values.

Despite this limitation, some users may notice that a beacon’s MAC address is displayed in certain contexts, such as being printed on the device itself or visible within a manufacturer’s setup application. This raises the question how these apps access the MAC address when iOS does not allow it.

The answer lies in proprietary or non-standard mechanisms used by some manufacturers. These methods can include embedding the MAC address within extra custom advertising data or requiring an app to establish a connection with the beacon and retrieve custom settings that include the MAC address. However, since these approaches are not part of a Bluetooth standard nor part of Apple’s official APIs for iBeacon detection, they should not be relied upon for application development.

Relying on MAC addresses for identification can lead to issues. Different beacon models and manufacturers use different undocumented techniques, making it difficult to ensure long-term compatibility when second sourcing. Connecting to a beacon to get its MAC address adds an extra step that significantly complicates things and makes slower compared to just reading advertising with no connection.

Mechanisms used to expose MAC addresses are often undocumented. Any firmware update or change for later purchased beacons could change or remove these features without warning, making the approach unreliable for long-term solutions.

Apple’s privacy restrictions mean that app developers should focus on the standard iBeacon identification mechanisms to ensure stability, compatibility and compliance with iOS policies.