What's New / App Services, Foundation & Diagnostics

What's new in AutomaticAssessmentConfiguration

+49 NewiOS · macOS

AutomaticAssessmentConfiguration configures locked assessment sessions on Apple platforms, restricting access to system features and other apps during a session. The APIs specify which menu items, system actions, and accessibility features stay available while a session is active.

The 27 SDK adds 49 APIs with no deprecations or removals. New types are the AEAppleMenuItem and AEMenuBarItem structs and the AEUserAccountType enum. AEAppleMenuItem gains cases for system menu actions including aboutThisMac, appStore, forceQuit, location, lockScreen, logout, recent, and restart, plus the accessibility toggles allowsAccessibilitySpokenContent and allowsAccessibilityVoiceOver.

New

49
struct

AEAppleMenuItem

NewmacOS
public struct AEAppleMenuItem : Hashable, Equatable, RawRepresentable, @unchecked Sendable

Identifies an item in the Apple menu.

Use these constants with allowedAppleMenuItems to control which Apple menu items are visible during an assessment session.

Note: AEAppleMenuItemAboutThisMac is always visible during assessment sessions regardless of configuration.

Declaration
public struct AEAppleMenuItem : Hashable, Equatable, RawRepresentable, @unchecked Sendable {

    public init(rawValue: String)
}
extension

AEAssessmentParticipantConfiguration

NewmacOS
extension AEAssessmentParticipantConfiguration
Declaration
extension AEAssessmentParticipantConfiguration {

    /// Returns the set of allowed menu item titles for the given language,
    /// or `nil` if no items have been configured for that language.
    ///
    /// Menu item titles are matched against the participant application's
    /// localized menu items at the time the assessment session begins.
    /// The system resolves each language to the best-matching localization
    /// the application bundle provides, so an exact locale match is not
    /// required.
    ///
    /// - Parameter language: The language for which to return allowed
    ///   menu items.
    public func allowedMenuItems(for language: Locale.Language) -> Set<String>?

    /// Sets the allowed menu item titles for the given language.
    ///
    /// Use this method to specify which menu items the participant
    /// application may display during an assessment session. Titles must
    /// match the application's localized menu item strings for the
    /// corresponding language.
    ///
    /// If multiple languages resolve to the same application localization,
    /// the system combines their sets of allowed menu items.
    ///
    /// - Parameters:
    ///   - menuItems: The set of menu item titles to allow, or `nil` to
    ///     remove the entry for `language`.
    ///   - language: The language to associate with `menuItems`.
    public func setAllowedMenuItems(_ menuItems: Set<String>?, for language: Locale.Language)

    /// The set of languages for which allowed menu items have been
    /// configured.
    ///
    /// Contains only languages explicitly added via
    /// ``setAllowedMenuItems(_:for:)``. Each returned language matches the
    /// value originally passed to that method. Does not include languages
    /// inferred through localization resolution.
    public var allowedMenuItemLanguages: Set<Locale.Language> { get }
}
struct

AEMenuBarItem

NewmacOS
public struct AEMenuBarItem : Hashable, Equatable, RawRepresentable, @unchecked Sendable
Declaration
public struct AEMenuBarItem : Hashable, Equatable, RawRepresentable, @unchecked Sendable {

    public init(_ rawValue: String)

    public init(rawValue: String)
}
enum

AEUserAccountType

NewmacOS
public enum AEUserAccountType : Int, @unchecked Sendable

Specifies the type of account required for an assessment session.

Declaration
@frozen public enum AEUserAccountType : Int, @unchecked Sendable {

    /// No specific account type is required.
    case any = 0

    /// Requires a standard user account.
    case standard = 1

    /// Requires a guest user account.
    case guest = 2
}
var

allowedAppleMenuItems

NewmacOS
open var allowedAppleMenuItems: Set<AEAppleMenuItem>?

The set of allowed Apple menu items during an assessment.

By default, all Apple menu items are restricted during an assessment. Use this property to specify which menu items should be accessible.

Note: AEAppleMenuItemAboutThisMac is always visible during assessment sessions regardless of configuration.

var

allowedDirectoriesAndFiles

NewmacOS
open var allowedDirectoriesAndFiles: Set<URL>?

The set of allowed directories and files that participants can access during an assessment.

By default, participants have restricted file system access. Use this property to specify file URLs to directories and files that should be accessible during the assessment session.

The default value is nil, which preserves the default unrestricted access behavior.

var

allowedMenuBarItems

NewmacOS
open var allowedMenuBarItems: Set<AEMenuBarItem>?

The set of menu bar items that should remain visible during an assessment.

When allowsMenuBar is true, the menu bar is restricted to only the items specified in this set. If this property is nil, all menu bar items are allowed (unrestricted menu bar).

Note: This property only takes effect when allowsMenuBar is true.

var

allowLockdownMode

NewmacOS
open var allowLockdownMode: Bool

A Boolean value that indicates whether the assessment allows Lockdown Mode to be active.

When set to false, the assessment session will only start if Lockdown Mode is not enabled on the device. This requirement is not enforced by default.

var

allowOnlyParticipantsToRun

NewmacOS
open var allowOnlyParticipantsToRun: Bool

A Boolean value that indicates whether only participant applications are allowed to run during an assessment.

var

allowPrivateRelay

NewmacOS
open var allowPrivateRelay: Bool

A Boolean value that indicates whether the assessment allows iCloud Private Relay to be active.

When set to false, the assessment session will only start if iCloud Private Relay is not enabled. This requirement is not enforced by default.

var

allowsAccessibilityAlternativeInputMethods

NewmacOS
open var allowsAccessibilityAlternativeInputMethods: Bool

A Boolean value that indicates whether to allow alternative input methods for accessibility features during an assessment.

When the Accessibility Keyboard or Switch Control is enabled, alternative input methods such as Dwell Control may be available. An assessment session disables these alternative input methods by default, but you can allow them by setting allowsAccessibilityAlternativeInputMethods to YES in the AEAssessmentConfiguration instance that you use to initialize a session.

Note: This property only takes effect when allowsAccessibilityKeyboard or allowsAccessibilitySwitchControl is YES.

var

allowsAccessibilityBackgroundSounds

NewmacOS
open var allowsAccessibilityBackgroundSounds: Bool

A Boolean value that indicates whether to allow Background Sounds during an assessment.

Users can enable Background Sounds in the Settings app (Accessibility > Audio & Visual > Background Sounds) to play ambient sounds that can mask unwanted environmental noise. An assessment session disables Background Sounds by default, but you can allow it by setting allowsAccessibilityBackgroundSounds to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsAccessibilityHoverText

NewmacOS
open var allowsAccessibilityHoverText: Bool

A Boolean value that indicates whether to allow Hover Text during an assessment.

Users can enable Hover Text in the Settings app (Accessibility > Zoom > Hover Text) to magnify text under the pointer. An assessment session does not disable Hover Text by default, but you can disable it by setting allowsAccessibilityHoverText to NO in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsAccessibilityLiveSpeech

NewmacOS
open var allowsAccessibilityLiveSpeech: Bool

A Boolean value that indicates whether to allow Live Speech during an assessment.

Users can enable Live Speech in the Settings app (Accessibility > Speech > Live Speech) to type what they want to say and have it spoken aloud. An assessment session disables Live Speech by default, but you can allow it by setting allowsAccessibilityLiveSpeech to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsAccessibilitySpokenContent

NewiOSmacOS
open var allowsAccessibilitySpokenContent: Bool

A Boolean value that indicates whether to allow Spoken Content during an assessment.

Users can enable Spoken Content in the Settings app (Accessibility > Spoken Content) to have text read aloud. This includes Speak Selection, Speak Screen, and related features. An assessment session disables Spoken Content by default, but you can allow it by setting allowsAccessibilitySpokenContent to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsAccessibilitySwitchControl

NewmacOS
open var allowsAccessibilitySwitchControl: Bool

A Boolean value that indicates whether to allow Switch Control during an assessment.

Users can enable Switch Control in the Settings app (Accessibility > Switch Control) to control their device using adaptive switches. An assessment session does not disable Switch Control by default, but you can disable it by setting allowsAccessibilitySwitchControl to NO in the AEAssessmentConfiguration instance that you use to initialize a session.

Note: To allow Switch Control with alternative input methods (such as Dwell Control), you must also set allowsAccessibilityAlternativeInputMethods to YES.

var

allowsAccessibilityVoiceControl

NewmacOS
open var allowsAccessibilityVoiceControl: Bool

A Boolean value that indicates whether to allow Voice Control during an assessment.

Users can enable Voice Control in the Settings app (Accessibility > Voice Control) to control their device using voice commands. An assessment session does not disable Voice Control by default, but you can disable it by setting allowsAccessibilityVoiceControl to NO in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsAccessibilityVoiceOver

NewiOSmacOS
open var allowsAccessibilityVoiceOver: Bool

A Boolean value that indicates whether to allow VoiceOver during an assessment.

Users can enable VoiceOver in the Settings app (Accessibility > VoiceOver) to receive spoken descriptions of on-screen elements and gestures for navigating the interface. An assessment session does not disable VoiceOver by default, but you can disable it by setting allowsAccessibilityVoiceOver to NO in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsAccessibilityZoom

NewmacOS
open var allowsAccessibilityZoom: Bool

A Boolean value that indicates whether to allow Zoom during an assessment.

Users can enable Zoom in the Settings app (Accessibility > Zoom) to magnify the screen. An assessment session does not disable Zoom by default, but you can disable it by setting allowsAccessibilityZoom to NO in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsAutoFill

NewmacOS
open var allowsAutoFill: Bool

A Boolean value that indicates whether to allow autofill during an assessment.

Users can enable autofill in System Settings (Passwords > Password Options > AutoFill Passwords and Passkeys). An assessment session disables autofill by default, but you can allow it by setting allowsAutoFill to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsDictation

NewmacOS
open var allowsDictation: Bool

A Boolean value that indicates whether to allow the use of dictation during an assessment.

By turning on Enable Dictation (General > Keyboard in the Settings app on iOS and iPadOS), users can speak into their device and have the words they speak converted to text. An assessment session disables this feature by default, but you can allow it by setting allowsDictation to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsDock

NewmacOS
open var allowsDock: Bool

A Boolean value that indicates whether to allow the Dock during an assessment.

An assessment session hides the Dock by default, but you can allow it by setting allowsDock to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsEmojiKeyboard

NewmacOS
open var allowsEmojiKeyboard: Bool

A Boolean value that indicates whether to allow the emoji keyboard during an assessment.

Users can access the emoji keyboard by tapping the emoji button on the keyboard (iOS) or through the Edit menu and keyboard shortcuts (macOS). An assessment session disables access to the emoji keyboard by default, but you can allow it by setting allowsEmojiKeyboard to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsMenuBar

NewmacOS
open var allowsMenuBar: Bool

A Boolean value that indicates whether to allow the menu bar during an assessment.

An assessment session hides the menu bar by default, but you can allow it by setting allowsMenuBar to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsStructuralInput

NewmacOS
open var allowsStructuralInput: Bool

A Boolean value that indicates whether to allow Chinese and Japanese structural input during an assessment.

Chinese and Japanese structural input methods allow users to enter characters using component-based input. An assessment session disables structural input by default, but you can allow it by setting allowsStructuralInput to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

allowsUserScriptExecution

NewmacOS
open var allowsUserScriptExecution: Bool

A Boolean value that indicates whether to allow user script execution during an assessment.

User scripts, such as AppleScripts or Automator workflows, can automate tasks on the system. An assessment session disables user script execution by default, but you can allow it by setting allowsUserScriptExecution to true in the AEAssessmentConfiguration instance that you use to initialize a session.

var

requiresManagedDevice

NewmacOS
open var requiresManagedDevice: Bool

A Boolean value that indicates whether the device must be managed to start an assessment.

When set to true, the assessment session will only start if the device is enrolled in a Mobile Device Management (MDM) solution. This requirement is disabled by default.

var

requiresSingleUser

NewmacOS
open var requiresSingleUser: Bool

A Boolean value that indicates whether only a single user account must be logged in to start an assessment.

When set to true, the assessment session will only start if there is exactly one user account logged in on the device. This requirement is disabled by default.

var

requiresSIP

NewmacOS
open var requiresSIP: Bool

A Boolean value that indicates whether System Integrity Protection (SIP) must be enabled to start an assessment.

When set to true, the assessment session will only start if System Integrity Protection is enabled on the device. This requirement is disabled by default.

var

requiresUserAccountType

NewmacOS
open var requiresUserAccountType: AEUserAccountType

Specifies the type of user account required to start an assessment.

This property defines the account requirement for starting an assessment session. Set it to .standard to require a non-administrator account, .guest to require a guest account, or .any (the default) to allow any account type.

let

AEAppleMenuItem.aboutThisMac

NewmacOS
public static let aboutThisMac: AEAppleMenuItem
let

AEAppleMenuItem.appStore

NewmacOS
public static let appStore: AEAppleMenuItem
let

AEAppleMenuItem.forceQuit

NewmacOS
public static let forceQuit: AEAppleMenuItem
let

AEAppleMenuItem.location

NewmacOS
public static let location: AEAppleMenuItem
let

AEAppleMenuItem.lockScreen

NewmacOS
public static let lockScreen: AEAppleMenuItem
let

AEAppleMenuItem.logout

NewmacOS
public static let logout: AEAppleMenuItem
let

AEAppleMenuItem.recent

NewmacOS
public static let recent: AEAppleMenuItem
let

AEAppleMenuItem.restart

NewmacOS
public static let restart: AEAppleMenuItem
let

AEAppleMenuItem.shutDown

NewmacOS
public static let shutDown: AEAppleMenuItem
let

AEAppleMenuItem.sleep

NewmacOS
public static let sleep: AEAppleMenuItem
let

AEAppleMenuItem.systemInformation

NewmacOS
public static let systemInformation: AEAppleMenuItem
let

AEAppleMenuItem.systemSettings

NewmacOS
public static let systemSettings: AEAppleMenuItem
let

AEMenuBarItem.battery

NewmacOS
public static let battery: AEMenuBarItem
let

AEMenuBarItem.bluetooth

NewmacOS
public static let bluetooth: AEMenuBarItem
let

AEMenuBarItem.clock

NewmacOS
public static let clock: AEMenuBarItem
let

AEMenuBarItem.displays

NewmacOS
public static let displays: AEMenuBarItem
let

AEMenuBarItem.keyboard

NewmacOS
public static let keyboard: AEMenuBarItem
let

AEMenuBarItem.volume

NewmacOS
public static let volume: AEMenuBarItem
let

AEMenuBarItem.wifi

NewmacOS
public static let wifi: AEMenuBarItem

No APIs match your filter.

← More in App Services, Foundation & Diagnostics