-
Notifications
You must be signed in to change notification settings - Fork 576
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>