How to pass the review process for an app with MDM support?

Hello,

We have implemented support for our app to work with MDM. Basically the app needs to read the custom configuration with UserDefaults.standard.dictionary(forKey: ‘com.apple.configuration.managed’) in order to be functional when in an MDM. The issue is that in the app review process we are told that:

"Guideline 2.1.0 - Information Needed

We are still unable to access the app's Mobile Device Management (MDM) functionality.

Provide a demo MDM profile and corresponding login credentials that we can be used to access the MDM features and functionality."

How do we create a demo MDM profile? Our app only needs to be passed configuration information and we have used Apple Configurator to create a profile, we have added information but it still doesn't work.

Here is an example of the .mobileconfig file we have generated, but when we install it on our device, the app does not return any value using UserDefaults.standard.dictionary(forKey: ‘com.apple.configuration.managed’).

<?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>PayloadDisplayName</key>
			<string>App Name</string>
			<key>PayloadIdentifier</key>
			<string>com.***.yyy.TESTUUID</string>
			<key>PayloadType</key>
			<string>com.apple.ManagedAppConfiguration</string>
			<key>PayloadUUID</key>
			<string>TESTUUID</string>
			<key>PayloadVersion</key>
			<integer>1</integer>
			<key>ManagedAppConfiguration</key>
			<dict>
				<key>MyFirstKey</key>
				<string>value1</string>
				<key>MySecondKey</key>
				<string>value2</string>
			</dict>
		</dict>
	</array>
	<key>PayloadDisplayName</key>
	<string>Test Profile</string>
	<key>PayloadIdentifier</key>
	<string>payloadid.TESTUUID2</string>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>TESTUUID2</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>

On the other hand, about 3 weeks ago we requested the MDM capability for the app (https://developer.apple.com/contact/request/mdm-capability) but we have not received any response.

We are at a bit of a loss.

I think your question is confusing two different systems. Is your app intended to be part of an MDM system that manages a device, or is your app intended to be controlled by an MDM system?

If you want your app to be controlled by MDM, you don't need to apply for any special capability. Your app can just read its managed app configuration using UserDefaults.

Is your app for macOS or other Apple platforms? If it's other Apple platforms, you don't set the app configuration using a configuration profile. The device must be managed by an MDM server, the MDM server must manage the app, and it must set the managed app configuration using the InstallApplication or Settings MDM commands.

Thank you very much for your answer and clarifications.

In our case the app must be controlled by an MDM system and, in this case, it works only for iOS and iPadOS. So we understand that we don't need to ask for MDM capability and we don't need to set the app configuration using a profile.

However, it is not clear to us how to proceed when reviewing the app. In the App Review Information we have already specified which keys and values should be in the app configuration and that the app does not require configuration profiles as it is controlled by an MDM system, but we are still asked for a demo MDM profile.

We don't know how to get them to review the MDM functionality of the app without using an MDM profile.

How to pass the review process for an app with MDM support?
 
 
Q