Home > Mac administration, macOS, Management Profiles > Managing SkipSetupItems settings in management profiles on macOS
Apple has provided settings for suppressing various screens which appear the first time you log into a Mac and sometimes also after an OS update. In recent OS releases, Apple has been using the following preference domain and key for this:
Apple has the SkipSetupItems key set to store its settings in an array, as described below:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
– key: SkipSetupItems | |
supportedOS: | |
iOS: | |
introduced: '14.0' | |
macOS: | |
introduced: '15.0' | |
type: <array> | |
presence: optional | |
content: An array of strings that describe the setup items to skip. `SkipKeys` provides | |
a list of valid strings and their meanings. Available in iOS 14 and later, and | |
macOS 15 and later. |
Why this is important is that the array and its list of strings is what’s being interpreted as the setting for the SkipSetupItems key in a management profile. This detail is important in itself because it can lead to multiple management profiles managing what macOS sees as the same setting.
In a case where you have two or more management profiles managing the same setting differently, you get what Apple calls indeterminate or undefined behavior. In a situation like this, macOS may randomly choose to apply one of the settings and ignore any others, or just ignore all of the settings. For more details, please see below the jump.
As an example, you may deploy a management profile to stop the Your Mac is Ready for FileVault screen from appearing.
In that case, there’s now a profile which is deploying the following setting in the SkipSetupItems array:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<key>SkipSetupItems</key> | |
<array> | |
<string>FileVault</string> | |
</array> |
Later, you may choose to deploy a management profile to stop the Software Update Complete screen from appearing.
In that case, there’s now a management profile which is deploying the following setting in the SkipSetupItems array:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<key>SkipSetupItems</key> | |
<array> | |
<string>UpdateCompleted</string> | |
</array> |
Once the second management profile to suppress the Software Update Complete screen has been deployed, you may now see the following behavior occurring randomly on the Macs it was deployed to:
The fix for this situation is to not deploy separate management profiles containing settings for the SkipSetupItems key. Instead, combine the settings into one management profile with multiple entries in the array. For example, to suppress both the Software Update Complete and Your Mac is Ready for FileVault screens, you would deploy a single management profile with the following settings in the SkipSetupItems array:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<key>SkipSetupItems</key> | |
<array> | |
<string>FileVault</string> | |
<string>UpdateCompleted</string> | |
</array> |
For macOS Tahoe 26.0, the following management profile should stop the following screens from appearing:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<plist version="1"> | |
<dict> | |
<key>PayloadUUID</key> | |
<string>C89844D6-D188-45BF-A2E2-CA151E8829DB</string> | |
<key>PayloadType</key> | |
<string>Configuration</string> | |
<key>PayloadOrganization</key> | |
<string>Company Name</string> | |
<key>PayloadIdentifier</key> | |
<string>C89844D6-D188-45BF-A2E2-CA151E8829DB</string> | |
<key>PayloadDisplayName</key> | |
<string>Disable macOS Tahoe Setup Assistant Screens</string> | |
<key>PayloadDescription</key> | |
<string>Disables the Setup Assistant screens from appearing on login for new user accounts</string> | |
<key>PayloadVersion</key> | |
<integer>1</integer> | |
<key>PayloadEnabled</key> | |
<true/> | |
<key>PayloadRemovalDisallowed</key> | |
<true/> | |
<key>PayloadScope</key> | |
<string>System</string> | |
<key>PayloadContent</key> | |
<array> | |
<dict> | |
<key>PayloadDisplayName</key> | |
<string>Custom Settings</string> | |
<key>PayloadIdentifier</key> | |
<string>0F5CC61C-2D48-4A94-862A-F4777F7D9C48</string> | |
<key>PayloadOrganization</key> | |
<string>Company Name</string> | |
<key>PayloadType</key> | |
<string>com.apple.ManagedClient.preferences</string> | |
<key>PayloadUUID</key> | |
<string>0F5CC61C-2D48-4A94-862A-F4777F7D9C48</string> | |
<key>PayloadVersion</key> | |
<integer>1</integer> | |
<key>PayloadContent</key> | |
<dict> | |
<key>com.apple.SetupAssistant.managed</key> | |
<dict> | |
<key>Forced</key> | |
<array> | |
<dict> | |
<key>mcx_preference_settings</key> | |
<dict> | |
<key>SkipSetupItems</key> | |
<array> | |
<string>Diagnostics</string> | |
<string>FileVault</string> | |
<string>Intelligence</string> | |
<string>SoftwareUpdate</string> | |
<string>UpdateCompleted</string> | |
<string>Welcome</string> | |
</array> | |
</dict> | |
</dict> | |
</array> | |
</dict> | |
</dict> | |
</dict> | |
</array> | |
</dict> | |
</plist> |