---
title: CLServiceSession
framework: corelocation
role: symbol
role_heading: Class
path: corelocation/clservicesession-pt7n
---

# CLServiceSession

An object that provides diagnostics about an app’s authorization to use location services.

## Declaration

```swift
final class CLServiceSession
```

## Mentioned in

Handling location updates in the background Configuring your app to use location services Suspending authorization requests

## Discussion

Discussion A CLServiceSession object represents your app’s current goal for location authorization (for example CLServiceSession.AuthorizationRequirement.always), if any. Use a CLServiceSession object to declaratively tell Core Location what your app needs for authorization related to a specific workflow that your app provides. The CLServiceSession object requests a person’s authorization to meet those requirements if possible, including automatically re-asking as needed after temporary authorization lapses due to time your app spends in the background. You can create and hold different session objects to request different kinds of authorization for each workflow; each of these represents an Explicit Service Session relevant to that workflow. Each object provides diagnostics that your app can observe to understand how its authorization state may differ from the goal it expressed. Don’t instantiate CLServiceSession objects directly; instead, create an instance that specifies a particular authorization mode, or authorization mode and accuracy requirements by using init(authorization:) or init(authorization:fullAccuracyPurposeKey:), respectively.

## Topics

### Creating a session

- [init(authorization:)](corelocation/clservicesession-pt7n/init(authorization:).md)
- [init(authorization:fullAccuracyPurposeKey:)](corelocation/clservicesession-pt7n/init(authorization:fullaccuracypurposekey:).md)
- [CLServiceSession.AuthorizationRequirement](corelocation/clservicesession-pt7n/authorizationrequirement.md)

### Ending the session

- [invalidate()](corelocation/clservicesession-pt7n/invalidate().md)

### Getting diagnostic information

- [diagnostics](corelocation/clservicesession-pt7n/diagnostics-swift.property.md)
- [CLServiceSession.Diagnostics](corelocation/clservicesession-pt7n/diagnostics-swift.class.md)

### Structures

- [CLServiceSession.Diagnostic](corelocation/clservicesession-pt7n/diagnostic.md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Location updates

- [Getting the current location of a device](corelocation/getting-the-current-location-of-a-device.md)
- [Handling location updates in the background](corelocation/handling-location-updates-in-the-background.md)
- [Creating a location push service extension](corelocation/creating-a-location-push-service-extension.md)
- [CLLocation](corelocation/cllocation.md)
- [CLLocationCoordinate2D](corelocation/cllocationcoordinate2d.md)
- [CLFloor](corelocation/clfloor.md)
- [CLVisit](corelocation/clvisit.md)
- [CLLocationSourceInformation](corelocation/cllocationsourceinformation.md)
- [Monitoring location changes with Core Location](corelocation/monitoring-location-changes-with-core-location.md)
