Skip to content

AutomaticAssessmentConfiguration iOS xcode27.0 b5

Alex Soto edited this page Aug 10, 2026 · 1 revision

#AutomaticAssessmentConfiguration.framework

diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentApplication.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentApplication.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentApplication.h	2026-07-11 07:55:33
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentApplication.h	2026-08-04 13:39:25
@@ -14,12 +14,12 @@
 @interface AEAssessmentApplication : NSObject <NSCopying>
 
 @property (nonatomic, copy, readonly) NSString *bundleIdentifier API_AVAILABLE(ios(17.5), macCatalyst(15.0), macos(12.0));
-@property (nonatomic, copy, readonly, nullable) NSString *teamIdentifier API_AVAILABLE(macCatalyst(15.0), macos(12.0)) API_UNAVAILABLE(ios);
+@property (nonatomic, copy, readonly, nullable) NSString *teamIdentifier API_AVAILABLE(ios(27.0), macCatalyst(15.0), macos(12.0));
 @property (nonatomic, assign) BOOL requiresSignatureValidation API_AVAILABLE(macCatalyst(15.0), macos(12.0)) API_UNAVAILABLE(ios);
 
 - (instancetype)initWithBundleIdentifier:(NSString *)bundleIdentifier API_AVAILABLE(ios(17.5), macCatalyst(15.0), macos(12.0));
 - (instancetype)initWithBundleIdentifier:(NSString *)bundleIdentifier
-                          teamIdentifier:(nullable NSString *)teamIdentifier API_AVAILABLE(macCatalyst(15.0), macos(12.0)) API_UNAVAILABLE(ios);
+                          teamIdentifier:(nullable NSString *)teamIdentifier API_AVAILABLE(ios(27.0), macCatalyst(15.0), macos(12.0));
 
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutable.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutable.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutable.h	1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutable.h	2026-08-04 13:39:25
@@ -0,0 +1,53 @@
+//
+//  AEAssessmentBinaryExecutable.h
+//  AutomaticAssessmentConfiguration
+//
+//  Copyright © 2026 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A non-bundled, non-UI executable (e.g. a launchd daemon) designated as an assessment participant
+/// by its on-disk path.
+///
+/// Use this for a participant that has no bundle identifier and so cannot be expressed as an
+/// ``AEAssessmentApplication``. It feeds only the app-launch allowlist under
+/// ``AEAssessmentConfiguration/allowOnlyParticipantsToRun`` and, when its configuration permits,
+/// network access; UI policies (frontmost app, window server, media, menu bar) do not apply.
+///
+/// Matching is by exact on-disk path. At runtime the executable must also satisfy
+/// ``requiresSignatureValidation`` (and the team identifier, if set), so a swapped or re-signed
+/// binary is not silently trusted. Leave ``requiresSignatureValidation`` enabled (the default)
+/// unless the executable is unsigned.
+///
+/// - SeeAlso: ``AEAssessmentApplication`` for bundled participants.
+API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+API_UNAVAILABLE(ios)
+@interface AEAssessmentBinaryExecutable : NSObject <NSCopying>
+
+/// On-disk path of the executable.
+@property (nonatomic, copy, readonly) NSURL *binaryExecutableURL API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+    API_UNAVAILABLE(ios);
+
+/// Team identifier the running executable's signature must match, or `nil` to skip the team check.
+@property (nonatomic, copy, readonly, nullable) NSString *teamIdentifier API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+    API_UNAVAILABLE(ios);
+
+/// Whether the running executable's code signature is validated. Defaults to `YES`.
+@property (nonatomic, assign) BOOL requiresSignatureValidation API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+    API_UNAVAILABLE(ios);
+
+- (instancetype)initWithBinaryExecutableURL:(NSURL *)binaryExecutableURL API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+                                                API_UNAVAILABLE(ios);
+- (instancetype)initWithBinaryExecutableURL:(NSURL *)binaryExecutableURL
+                             teamIdentifier:(nullable NSString *)teamIdentifier
+    API_AVAILABLE(macCatalyst(27.0), macos(27.0))API_UNAVAILABLE(ios);
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutableConfiguration.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutableConfiguration.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutableConfiguration.h	1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentBinaryExecutableConfiguration.h	2026-08-04 13:39:25
@@ -0,0 +1,37 @@
+//
+//  AEAssessmentBinaryExecutableConfiguration.h
+//  AutomaticAssessmentConfiguration
+//
+//  Copyright © 2026 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// The configuration applied to an ``AEAssessmentBinaryExecutable`` participant.
+///
+/// A non-bundled executable (such as a launchd daemon) is headless, so it supports only the subset of
+/// participant policies that apply to a process without UI: network access and whether the assessment
+/// requires it. The UI-oriented policies of ``AEAssessmentParticipantConfiguration`` (allowed menu items,
+/// graceful termination) do not apply.
+///
+/// - SeeAlso: ``AEAssessmentBinaryExecutable``, ``AEAssessmentParticipantConfiguration``.
+API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+API_UNAVAILABLE(ios)
+@interface AEAssessmentBinaryExecutableConfiguration : NSObject <NSCopying>
+
+/// Whether the executable may access the network during an assessment. Defaults to `YES`.
+@property (nonatomic, assign) BOOL allowsNetworkAccess API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+    API_UNAVAILABLE(ios);
+
+/// Whether the assessment requires this executable. Defaults to `NO`.
+@property (nonatomic, assign, getter=isRequired) BOOL required API_AVAILABLE(macCatalyst(27.0), macos(27.0))
+    API_UNAVAILABLE(ios);
+
+- (instancetype)init API_AVAILABLE(macCatalyst(27.0), macos(27.0))API_UNAVAILABLE(ios);
++ (instancetype)new API_AVAILABLE(macCatalyst(27.0), macos(27.0))API_UNAVAILABLE(ios);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentConfiguration.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentConfiguration.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentConfiguration.h	2026-07-11 07:55:33
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AEAssessmentConfiguration.h	2026-08-04 18:04:36
@@ -14,6 +14,8 @@
 NS_ASSUME_NONNULL_BEGIN
 
 @class AEAssessmentApplication;
+@class AEAssessmentBinaryExecutable;
+@class AEAssessmentBinaryExecutableConfiguration;
 @class AEAssessmentParticipantConfiguration;
 
 /// Configuration information for an assessment session.
@@ -40,8 +42,12 @@
 /// - ``setConfiguration(_:for:)``
 /// - ``configurationsByApplication``
 /// - ``remove(_:)``
+/// - ``setConfiguration(_:for:)-(AEAssessmentBinaryExecutableConfiguration,_)``
+/// - ``configurationsByBinaryExecutable``
+/// - ``removeBinaryExecutable(_:)``
 /// - ``mainParticipantConfiguration``
 /// - ``AEAssessmentApplication``
+/// - ``AEAssessmentBinaryExecutable``
 /// - ``AEAssessmentParticipantConfiguration``
 ///
 /// ### Allowing accessibility
@@ -84,6 +90,10 @@
 ///
 /// - ``allowsScreenshots``
 ///
+/// ### Controlling force quit
+///
+/// - ``allowsForceQuit``
+///
 API_AVAILABLE(ios(13.4), macos(10.15.4), macCatalyst(14.0))
 API_UNAVAILABLE(visionos)
 @interface AEAssessmentConfiguration: NSObject <NSCopying>
@@ -216,12 +226,9 @@
 
 /// A Boolean value that indicates whether to allow the speech-related accessibility features during an assessment.
 ///
-/// - Important: This property is deprecated. Use ``AEAssessmentConfiguration/allowsAccessibilitySpokenContent``
-/// instead.
+/// - Important: This property is deprecated. Use ``AEAssessmentConfiguration/allowsAccessibilitySpokenContent`` instead.
 ///
-@property (nonatomic, assign)
-    BOOL allowsAccessibilitySpeech API_DEPRECATED_WITH_REPLACEMENT("allowsAccessibilitySpokenContent", ios(14.0, 27.0))
-        API_UNAVAILABLE(macos, macCatalyst);
+@property (nonatomic, assign) BOOL allowsAccessibilitySpeech API_DEPRECATED_WITH_REPLACEMENT("allowsAccessibilitySpokenContent", ios(14.0, 27.0)) API_UNAVAILABLE(macos, macCatalyst);
 
 /// A Boolean value that indicates whether to allow Spoken Content during an assessment.
 ///
@@ -311,6 +318,14 @@
 
 #pragma mark User Interface
 
+/// A Boolean value that indicates whether to allow force quitting apps during an assessment.
+///
+/// Users can force quit apps by pressing Shift-Option-Command-Escape to force quit the frontmost app. An assessment session disables force quit by default, but you can allow it by setting ``AEAssessmentConfiguration/allowsForceQuit`` to `true` in the ``AEAssessmentConfiguration`` instance that you use to initialize a session.
+///
+/// - Note: This property controls only the force quit keyboard shortcuts. Setting it to `false` does not remove the Force Quit item from the Apple menu. Use ``AEAssessmentConfiguration/allowedAppleMenuItems`` to configure the allowed Apple menu items.
+///
+@property (nonatomic, assign) BOOL allowsForceQuit API_AVAILABLE(macos(27.0), macCatalyst(27.0)) API_UNAVAILABLE(ios);
+
 /// 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.
@@ -366,6 +381,17 @@
 ///
 @property (nonatomic, assign) BOOL allowPrivateRelay API_AVAILABLE(macos(27.0), macCatalyst(27.0)) API_UNAVAILABLE(ios);
 
+/// A Boolean value that indicates whether the assessment allows running inside a virtual machine.
+///
+/// When set to `false`, the assessment session will only start if the device is not a virtual machine. This requirement is not enforced by default; virtual machines are allowed unless you opt out.
+///
+/// > Important: This check is advisory, not a security guarantee. Setting `allowVirtualMachine` to `false` may not block an assessment session in every virtualized environment. Use this property to steer proctored exams toward physical hardware; it doesn't provide a cryptographic attestation that the session is running on a physical machine.
+///
+/// For stronger assurances about the runtime environment, pair this property with
+/// [App Attest](https://developer.apple.com/documentation/DeviceCheck) on macOS.
+///
+@property (nonatomic, assign) BOOL allowVirtualMachine API_AVAILABLE(macos(27.0), macCatalyst(27.0)) API_UNAVAILABLE(ios);
+
 /// 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.
@@ -374,23 +400,17 @@
 
 /// 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.
+/// 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.
 ///
-/// > Important: This check is advisory, not a security guarantee. The framework can't reliably detect whether SIP is
-/// enabled on systems where the user has administrator privileges, so setting `requiresSIP` to `true` may not block an
-/// assessment session when SIP is in fact disabled. Use this property to prompt users to re-enable SIP if they turned
-/// it off for unrelated reasons; it doesn't indicate whether the system was modified while SIP was previously disabled.
+/// > Important: This check is advisory, not a security guarantee. The framework can't reliably detect whether SIP is enabled on systems where the user has administrator privileges, so setting `requiresSIP` to `true` may not block an assessment session when SIP is in fact disabled. Use this property to prompt users to re-enable SIP if they turned it off for unrelated reasons; it doesn't indicate whether the system was modified while SIP was previously disabled.
 ///
-/// For stronger assurances that SIP is enabled, pair this property with
-/// [App Attest](https://developer.apple.com/documentation/DeviceCheck) on macOS.
+/// For stronger assurances that SIP is enabled, pair this property with [App Attest](https://developer.apple.com/documentation/DeviceCheck) on macOS.
 ///
 @property (nonatomic, assign) BOOL requiresSIP API_AVAILABLE(macos(27.0), macCatalyst(27.0)) API_UNAVAILABLE(ios);
 
 /// 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.
+/// 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.
 ///
 @property (nonatomic, assign) BOOL requiresSingleUser API_AVAILABLE(macos(27.0), macCatalyst(27.0)) API_UNAVAILABLE(ios);
 
@@ -451,6 +471,29 @@
 ///   - application: The app that you want to remove from the list of allowed secondary apps.
 ///
 - (void)removeApplication:(AEAssessmentApplication *)application API_AVAILABLE(ios(17.5), macCatalyst(15.0), macos(12.0));
+
+/// The collection of executable participants available during an assessment, along with their associated configurations.
+///
+/// Add executables with ``AEAssessmentConfiguration/setConfiguration(_:for:)-(AEAssessmentBinaryExecutableConfiguration,_)`` and remove them with ``AEAssessmentConfiguration/removeBinaryExecutable(_:)``.
+///
+/// - SeeAlso: ``AEAssessmentBinaryExecutable``
+@property (nonatomic, copy, readonly) NSDictionary<AEAssessmentBinaryExecutable *, AEAssessmentBinaryExecutableConfiguration *> *configurationsByBinaryExecutable API_AVAILABLE(macCatalyst(27.0), macos(27.0)) API_UNAVAILABLE(ios);
+
+/// Adds an executable participant to the list of participants available during an assessment.
+///
+/// - Parameters:
+///   - configuration: The configuration of the executable participant.
+///   - binaryExecutable: The executable that you want to configure.
+///
+/// - SeeAlso: ``AEAssessmentBinaryExecutable``
+- (void)setConfiguration:(AEAssessmentBinaryExecutableConfiguration *)configuration forBinaryExecutable:(AEAssessmentBinaryExecutable *)binaryExecutable API_AVAILABLE(macCatalyst(27.0), macos(27.0)) API_UNAVAILABLE(ios);
+
+/// Removes the availability of a previously added executable participant.
+///
+/// - Parameters:
+///   - binaryExecutable: The executable that you want to remove from the list of allowed participants.
+///
+- (void)removeBinaryExecutable:(AEAssessmentBinaryExecutable *)binaryExecutable API_AVAILABLE(macCatalyst(27.0), macos(27.0)) API_UNAVAILABLE(ios);
 
 @end
 
diff -ruN /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AutomaticAssessmentConfiguration.h /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AutomaticAssessmentConfiguration.h
--- /Applications/Xcode_27.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AutomaticAssessmentConfiguration.h	2026-07-11 07:55:32
+++ /Applications/Xcode_27.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/Headers/AutomaticAssessmentConfiguration.h	2026-08-04 13:39:24
@@ -5,12 +5,14 @@
 //  Copyright © 2020 Apple Inc. All rights reserved.
 //
 
+#import <AutomaticAssessmentConfiguration/AEAppleMenuItem.h>
 #import <AutomaticAssessmentConfiguration/AEAssessmentApplication.h>
+#import <AutomaticAssessmentConfiguration/AEAssessmentBinaryExecutable.h>
+#import <AutomaticAssessmentConfiguration/AEAssessmentBinaryExecutableConfiguration.h>
 #import <AutomaticAssessmentConfiguration/AEAssessmentConfiguration.h>
 #import <AutomaticAssessmentConfiguration/AEAssessmentParticipantConfiguration.h>
 #import <AutomaticAssessmentConfiguration/AEAssessmentSession.h>
 #import <AutomaticAssessmentConfiguration/AEAssessmentSessionDelegate.h>
-#import <AutomaticAssessmentConfiguration/AEAppleMenuItem.h>
 #import <AutomaticAssessmentConfiguration/AEErrors.h>
 #import <AutomaticAssessmentConfiguration/AEMenuBarItem.h>
 #import <AutomaticAssessmentConfiguration/AEUserAccountType.h>

Clone this wiki locally