Apple Configurator 2 Configuration
On this page
This policy configuration can be used to transfer .mobileconfig files to Apple devices. Such a file can contain, for example, a Wi-Fi connection together with the matching identity certificate (PKCS#12, .p12).
Configuration
The Name field sets a name for the configuration. The file is uploaded via Select .mobileconfig file. Its content then replaces the file selection in the Payload content field, where it can be edited. The content must be valid XML. Signed profiles are not readable XML and therefore cannot be used, so the file is saved without a signature in Apple Configurator 2. If the Payload content field is cleared, a file can be selected again.
User, device and certificate placeholders can be used in the Payload content field. The available placeholders are listed below the form and are replaced when the configuration is transferred to the device, see Advanced placeholders →.
Several Apple Configurator 2 configurations can be created per policy. This allows multiple configuration types to be split across separate configurations.
File requirements
The content is validated when the configuration is saved. The file must meet the following conditions:
- The top level contains the keys
PayloadType,PayloadVersion(as a number),PayloadIdentifier,PayloadUUIDandPayloadDisplayName. PayloadContentcontains exactly one configuration type. Certificate payloads may be included in addition.
Files that cannot be read, that lack one of these keys, or that contain no payload or several configuration types are rejected when saving.
Only certificates in PKCS#12 format (com.apple.security.pkcs12) are transferred along with the configuration. PKCS#1 certificates (com.apple.security.pkcs1) pass validation but are not transferred to the device. Other certificates such as root certificates (com.apple.security.root) count as a separate configuration type. Combined with another configuration, they cause an error when saving and are therefore stored in a configuration of their own.
The actual configuration must be the first entry in PayloadContent. If the file contains several payloads of the same type, only the first one is transferred to the device.
If the file contains a configuration type that Relution also offers as a separate configuration allowed only once per policy, that configuration can no longer be added to the same policy. On visionOS, this applies to Passcode → (com.apple.mobiledevice.passwordpolicy) and Restrictions → (com.apple.applicationaccess).
Conversely, such a file is rejected when saving if the policy already contains the corresponding configuration or another active Apple Configurator 2 configuration with the same payload type.
Example
The following file transfers a Wi-Fi connection (com.apple.wifi.managed). SSID, password, identifiers and UUIDs are sample values and are replaced with actual values. Each PayloadUUID must be unique.
<?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.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>AutoJoin</key>
<true/>
<key>EncryptionType</key>
<string>WPA2</string>
<key>HIDDEN_NETWORK</key>
<false/>
<key>Password</key>
<string>Wi-Fi-password</string>
<key>PayloadDisplayName</key>
<string>Wi-Fi</string>
<key>PayloadIdentifier</key>
<string>com.example.wifi.payload</string>
<key>PayloadType</key>
<string>com.apple.wifi.managed</string>
<key>PayloadUUID</key>
<string>8D2E4C1A-3B5F-4A7E-9C6D-1F0B2A3C4D5E</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>SSID_STR</key>
<string>Company-WiFi</string>
</dict>
</array>
<key>PayloadDescription</key>
<string>Wi-Fi configuration for Apple devices</string>
<key>PayloadDisplayName</key>
<string>Wi-Fi</string>
<key>PayloadIdentifier</key>
<string>com.example.wifi</string>
<key>PayloadOrganization</key>
<string>Example Inc.</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>4A7B1C2D-5E6F-4890-A1B2-C3D4E5F60718</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>