<!--
{
  "availability" : [
    "iOS: 7.0.0 - 27.0.0",
    "iPadOS: 7.0.0 - 27.0.0",
    "macCatalyst: 13.1.0 - 27.0.0",
    "macOS: 10.15.0 - 27.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "CoreLocation",
  "identifier" : "/documentation/CoreLocation/CLBeaconRegion",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core Location"
    ],
    "preciseIdentifier" : "c:objc(cs)CLBeaconRegion"
  },
  "title" : "CLBeaconRegion"
}
-->

# CLBeaconRegion

A region for detecting the presence of iBeacon devices.

```
class CLBeaconRegion
```

## Overview

A [`CLBeaconRegion`](/documentation/CoreLocation/CLBeaconRegion) object defines a region that you use to detect Bluetooth beacons conforming to the iBeacon specification. In contrast to a [`CLCircularRegion`](/documentation/CoreLocation/CLCircularRegion) that centers on a geographic location, a [`CLBeaconRegion`](/documentation/CoreLocation/CLBeaconRegion) focuses on an iBeacon with specific identifying characteristics, which you provide. When a matching device comes in range, Core Location notifies your app.

You monitor beacon regions in two ways. To detect when a beacon is in range, use the [`startMonitoring(for:)`](/documentation/CoreLocation/CLLocationManager/startMonitoring(for:)) method of your location manager object. After detecting a beacon, call the [`startRangingBeacons(in:)`](/documentation/CoreLocation/CLLocationManager/startRangingBeacons(in:)) method to determine the relative distance to that beacon.

When detecting an iBeacon, you need to specify the [`proximityUUID`](/documentation/CoreLocation/CLBeaconRegion/proximityUUID), [`major`](/documentation/CoreLocation/CLBeaconRegion/major), and [`minor`](/documentation/CoreLocation/CLBeaconRegion/minor) values that you programmed into the beacon hardware. You use the values to identify your beacons uniquely, and you can specify a subset of values to detect multiple beacons. The [`proximityUUID`](/documentation/CoreLocation/CLBeaconRegion/proximityUUID) property is typically the same for all of the beacons in your installation. Use the [`major`](/documentation/CoreLocation/CLBeaconRegion/major) and [`minor`](/documentation/CoreLocation/CLBeaconRegion/minor) values to distinguish among different beacons in your installation.

If you want to configure the current iOS device as a Bluetooth beacon, create a beacon region with the appropriate identifying information. You can then call the [`peripheralData(withMeasuredPower:)`](/documentation/CoreLocation/CLBeaconRegion/peripheralData(withMeasuredPower:)) method of the region to get a dictionary that you can use to advertise the device with the Core Bluetooth framework. For more information about using that framework to advertise the device as a beacon, see [Turning an iOS device into an iBeacon device](/documentation/CoreLocation/turning-an-ios-device-into-an-ibeacon-device).

For information about how to detect beacons, see [Determining the proximity to an iBeacon device](/documentation/CoreLocation/determining-the-proximity-to-an-ibeacon-device).

## Topics

### Creating a beacon region

[`-  initWithBeaconIdentityConstraint:identifier:`](/documentation/CoreLocation/CLBeaconRegion/init(beaconIdentityConstraint:identifier:))

Creates and returns a region object that targets beacons that satisfy the specified beacon identity constraints.

[`-  initWithUUID:identifier:`](/documentation/CoreLocation/CLBeaconRegion/init(uuid:identifier:)-6hg8v)

Creates and returns a region object that targets beacons with the specified UUID.

[`-  initWithUUID:major:identifier:`](/documentation/CoreLocation/CLBeaconRegion/init(uuid:major:identifier:)-8ur0j)

Creates and returns a region object that targets beacons with the specified UUID and major value.

[`-  initWithUUID:major:minor:identifier:`](/documentation/CoreLocation/CLBeaconRegion/init(uuid:major:minor:identifier:)-24h7w)

Creates and returns a region object that targets beacons with the specified UUID, and major and minor values.

[`CLBeaconMajorValue`](/documentation/CoreLocation/CLBeaconMajorValue)

The most significant value in a beacon.

[`CLBeaconMinorValue`](/documentation/CoreLocation/CLBeaconMinorValue)

The least significant value in a beacon.

### Getting the beacon identity

[`UUID`](/documentation/CoreLocation/CLBeaconRegion/uuid)

The UUID value from the beacon identity constraint that defines the beacon region.

[`major`](/documentation/CoreLocation/CLBeaconRegion/major)

The major value from the beacon identity constraint that defines the beacon region.

[`minor`](/documentation/CoreLocation/CLBeaconRegion/minor)

The minor value from the beacon identity constraint that defines the beacon region.

[`beaconIdentityConstraint`](/documentation/CoreLocation/CLBeaconRegion/beaconIdentityConstraint)

The beacon identity constraint that defines the beacon region.

### Specifying when to send notifications

[`notifyEntryStateOnDisplay`](/documentation/CoreLocation/CLBeaconRegion/notifyEntryStateOnDisplay)

A Boolean value that indicates whether Core Location sends beacon notifications when the device’s display is on.

### Getting the beacon’s advertisement data

[`-  peripheralDataWithMeasuredPower:`](/documentation/CoreLocation/CLBeaconRegion/peripheralData(withMeasuredPower:))

Retrieves data that you can use to advertise the current device as a beacon.

### Deprecated

[`-  initWithProximityUUID:identifier:`](/documentation/CoreLocation/CLBeaconRegion/init(proximityUUID:identifier:))

Creates and returns a region object that targets a beacon with the specified UUID.

[`-  initWithProximityUUID:major:identifier:`](/documentation/CoreLocation/CLBeaconRegion/init(proximityUUID:major:identifier:))

Creates and returns a region object that targets a beacon with the specified proximity ID and major value.

[`-  initWithProximityUUID:major:minor:identifier:`](/documentation/CoreLocation/CLBeaconRegion/init(proximityUUID:major:minor:identifier:))

Creates and returns a region object that targets a beacon with the specified proximity ID, major value, and minor value.

[`proximityUUID`](/documentation/CoreLocation/CLBeaconRegion/proximityUUID)

The unique ID of the beacons you’re targeting.

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`CVarArg`](/documentation/Swift/CVarArg)

### Inherits From

[`CLRegion`](/documentation/CoreLocation/CLRegion)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)