iBeacon

Detect nearby Bluetooth beacons and react when people are close to a place or object.

Introduced
2013
iOS 7
Kind
Platform feature
Runs on
Get it from
iOS
13.0+
iPadOS
13.0+
Mac Catalyst
13.1+
macOS
10.15+
tvOS
visionOS
watchOS

Overview

iBeacon is a Bluetooth Low Energy technology that lets an app know when a device is near a beacon. Each beacon advertises a UUID plus major and minor values, which an app uses to identify a store section, a museum exhibit or a café. Apple describes it as room-level proximity, not precise positioning.

Apps use Core Location in two stages: region monitoring to notice when a matching beacon is in range, which can relaunch the app, and ranging to estimate whether it is immediate, near or far. An iOS device in the foreground can also act as a beacon using Core Bluetooth.

Beacon identity

A 128-bit UUID plus 16-bit major and minor values identify each beacon.

Region monitoring

The system can launch your app when a matching beacon comes into range.

Proximity ranging

Ranging reports immediate, near or far rather than an exact distance.

Device as beacon

A foreground iOS app can advertise as a beacon using Core Bluetooth.

BeaconRanger.swift
import CoreLocation final class BeaconRanger: NSObject, CLLocationManagerDelegate { let manager = CLLocationManager() func start(uuid: UUID) { manager.delegate = self manager.requestWhenInUseAuthorization() manager.startRangingBeacons(satisfying: CLBeaconIdentityConstraint(uuid: uuid)) } func locationManager(_ manager: CLLocationManager, didRange beacons: [CLBeacon], satisfying constraint: CLBeaconIdentityConstraint) { guard let nearest = beacons.first, nearest.proximity == .immediate else { return } print("At beacon \(nearest.major).\(nearest.minor)") } }

History

How it grew up.

2013

iOS 7 launch

iBeacon arrives in iOS 7, with Core Location APIs for beacon monitoring and ranging.

2014

Licensing guide

Apple's iBeacon guide sets out licenses for beacon makers and for using the iBeacon logo.

2019

Identity constraints

iOS 13 adds CLBeaconIdentityConstraint and lets monitoring work with When In Use access.

2023

Core Location Monitor

iOS 17 adds CLMonitor with BeaconIdentityCondition for observing beacon events.