We provide a MDM product. In our product, payloads and properties which require supervision display those requirements.
Two properties forcePreserveESIMOnErase
and allowWebDistributionAppInstallation
of the restriction payload don’t require a supervised device according to the descriptions in Apple Developer Documentation.
However, in our observation, those properties seem to require it.
Are those OS bugs or documentation errors? (In which category should I submit a feedback?)
Steps to reproduce
Prepare a supervised device (I used an iPhone 12 mini with iOS 18.1) and a configuration profile contains the following restrictions:
<!-- Does not require a supervised device -->
<key>allowDiagnosticSubmission</key>
<false/>
<!-- Requires a supervised device -->
<key>allowESIMModification</key>
<false/>
<!-- Does not require a supervised device according to its description -->
<key>allowWebDistributionAppInstallation</key>
<false/>
<!-- Does not require a supervised device according to its description -->
<key>forcePreserveESIMOnErase</key>
<true/>
Then,
- Install the profile with Apple Configurator.
- Confirm 4 restrictions are shown in Settings > General > VPN & Device Management > PayloadDisplayName > Restrictions.
- Punch Settings > General > Transfer or Reset iPhone > Erase All Content and Settings, to unsupervise.
- Install the profile with Apple Configurator. It cannot be installed automatically because the device was not supervised.
- Manually install the downloaded profile.
- Check Settings > General > VPN & Device Management > PayloadDisplayName > Restrictions.
Expected results
3 restrictions—allowDiagnosticSubmission
, allowWebDistributionAppInstallation
and forcePreserveESIMOnErase
—are shown.
Actual results
Only one restriction—allowDiagnosticSubmission
—is shown.
Appendix: Restriction keys and their restricted message shown in Settings
allowESIMModification
: eSIM modification not allowedforcePreserveESIMOnErase
: Preserve eSIM on erase enforcedallowWebDistributionAppInstallation
: Web app distribution not allowedallowDiagnosticSubmission
: Diagnostic submission not allowed