<!--
{
  "availability" : [
    "iOS: 18.0.0 -",
    "iPadOS: 18.0.0 -",
    "macCatalyst: 18.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIScene/SystemProtectionManager-swift.class",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UISceneSystemProtectionManager"
  },
  "title" : "UIScene.SystemProtectionManager"
}
-->

# UIScene.SystemProtectionManager

A class that represents the status of system protection for the scene.

```
@MainActor class SystemProtectionManager
```

## Overview

Use this class to determine if the system protects a scene, such as by locking the app and requiring authentication with Face ID or Touch ID. You may want to disable your own app’s privacy shielding if the system already requires authentication.

The following example shows how a scene can use the manager’s [`isUserAuthenticationEnabled`](/documentation/UIKit/UIScene/SystemProtectionManager-swift.class/isUserAuthenticationEnabled) property to decide whether to provide its own UI shielding. When the scene becomes active, the app shows an authentication challenge if the system doesn’t already provide protection. When the scene resigns the active role, the app provides its own shielding only if the system isn’t already doing so.

```swift
func sceneDidBecomeActive(_ scene: UIScene) {
    guard scene.systemProtectionManager?.isUserAuthenticationEnabled ?? false else {
        // Show custom authentication.
    }
}

func sceneWillResignActive(_ scene: UIScene) {
    guard scene.systemProtectionManager?.isUserAuthenticationEnabled ?? false else {
        // Show custom shield to hide sensitive information.
    }
}
```

## Topics

### Inspecting protection state

[`var isUserAuthenticationEnabled: Bool`](/documentation/UIKit/UIScene/SystemProtectionManager-swift.class/isUserAuthenticationEnabled)

The current status of system user authentication.

## Relationships

### Conforms To

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

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

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

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

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

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

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

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)