MDM guide: Apple configuration profiles

Block apps with a configuration profile (.mobileconfig)

A .mobileconfig file can hide hundreds of apps on supervised iPhones and iPads in one go, through any MDM or Apple Configurator. This guide covers the exact keys, which need supervision, a full working example, and how to build, sign, deploy and test the profile.

blocklist.mobileconfig
<key>PayloadType</key>
<string>com.apple.applicationaccess</string>
<key>blockedAppBundleIDs</key>
<array>
  <string>com.zhiliaoapp.musically</string>
  <string>com.toyopagroup.picaboo</string>
  <string>ca.psiphon.Psiphon</string>
</array>

What is a mobileconfig file?

A .mobileconfig is an Apple configuration profile: a plain XML property list with one or more payloads inside. Names like ios.mobileconfig or app.mobileconfig are just file names; what matters is the payloads.

XML property list

Keys and values in Apple's plist format. You can read and edit it in any text editor.

Payloads

Each payload configures one area: Wi-Fi, VPN, certificates or Restrictions, which is where app blocking lives.

Signed or unsigned

Signing shows the device who made the profile and that nobody changed it. MDMs often handle this for you.

Three ways in

Upload to an MDM, install with Apple Configurator on a Mac, or open it on the device by hand.

Restrictions payload keys that block and allow apps

App rules sit in the Restrictions payload, whose PayloadType is com.apple.applicationaccess. These are the keys that matter, as listed in Apple's device management reference.

KeyWhat it doesSupervisediOSStatus
blockedAppBundleIDsArray of bundle IDs. Listed apps cannot be shown or launched.Required15 and laterCurrent, marked deprecated from iOS 27
allowListedAppBundleIDsArray of bundle IDs. Only listed apps can be shown or launched.Required15 and laterCurrent, marked deprecated from iOS 27
blacklistedAppBundleIDsOlder name for the block list.Required9.3 to 14Deprecated in iOS 15
whitelistedAppBundleIDsOlder name for the allow list.Required9.3 to 14Deprecated in iOS 15
allowAppInstallationFalse turns off the App Store and blocks every user install and update. MDM installs still work.Required since iOS 13All currentCurrent
allowUIAppInstallationFalse hides the App Store only. Local installs remain possible.Required9 and laterCurrent
allowAppRemovalFalse stops users deleting apps.Required4.2.1 and laterCurrent
allowUIConfigurationProfileInstallationFalse stops users installing their own profiles and certificates.Required6 and laterCurrent
ratingAppsHighest App Store age rating allowed, as a number such as 300 for 12+.Not yet; Apple says it will beAll currentCurrent
Two limits to remember: the bundle ID lists do nothing on unsupervised devices, and Apple does not allow them on User Enrollment, the privacy-first mode for personal devices. Settings and Phone cannot be hidden in either mode.

Anatomy of a blocklist profile

Here is a complete, minimal profile that hides six apps. Replace the identifier and both UUIDs before you use it; every profile and payload needs its own UUID.

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
  1<key>PayloadContent</key>
  <array>
    <dict>
      2<key>PayloadType</key>
      <string>com.apple.applicationaccess</string>
      <key>PayloadIdentifier</key>
      <string>org.yourdistrict.blocklist.restrictions</string>
      <key>PayloadUUID</key>
      <string>PASTE-NEW-UUID-1</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
      3<key>blockedAppBundleIDs</key>
      <array>
        <string>com.zhiliaoapp.musically</string>
        <string>com.toyopagroup.picaboo</string>
        <string>com.roblox.robloxmobile</string>
        <string>com.nordvpn.NordVPN</string>
        <string>ca.psiphon.Psiphon</string>
        <string>com.deepseek.chat</string>
      </array>
    </dict>
  </array>
  4<key>PayloadDisplayName</key>
  <string>App Blocklist</string>
  <key>PayloadIdentifier</key>
  <string>org.yourdistrict.blocklist</string>
  <key>PayloadUUID</key>
  <string>PASTE-NEW-UUID-2</string>
  5<key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
  6<key>PayloadRemovalDisallowed</key>
  <true/>
</dict>
</plist>
  1. 1PayloadContent is the array of payloads. This profile has one, the Restrictions payload.
  2. 2The Restrictions payload has its own type, identifier, UUID and version 1.
  3. 3blockedAppBundleIDs lists the apps to hide: TikTok, Snapchat, Roblox, NordVPN, Psiphon and DeepSeek.
  4. 4Top-level identity: the display name users see, plus an identifier that decides whether a new version replaces the old one.
  5. 5PayloadType must be Configuration and PayloadVersion must be 1 at the top level.
  6. 6PayloadRemovalDisallowed stops users removing a manually installed profile on supervised devices.

Apple's own tools also write a standard DOCTYPE line for property lists at the top. Devices read the file either way, but keep it if your editor adds it.

The allowlist variant for shared iPads

For a cart of iPads used by young pupils, an allowlist is often simpler than a blocklist. Swap the key and list only the apps that should be visible.

<key>allowListedAppBundleIDs</key>
<array>
  <string>com.google.Classroom</string>
  <string>org.khanacademy.Khan-Academy</string>
  <string>com.duolingo.DuolingoMobile</string>
  <string>no.mobitroll.kahoot.controller</string>
  <string>me.see-saw.classroom</string>
  <string>com.overdrive.dewey</string>
</array>

Before you switch to an allowlist

  • The example shows Google Classroom, Khan Academy, Duolingo, Kahoot!, Seesaw and Libby.
  • Add the built-in apps teachers expect, such as Camera and Safari, by their bundle IDs.
  • Add your MDM's own app if it has one on the device.
  • Never put an allowlist and a blocklist on the same device without testing.

Find any ID with the lookup further down, or browse popular app bundle IDs.

Build and check the file

You can write a profile by hand, start from Apple Configurator on a Mac (File > New Profile, then add the Restrictions payload), or begin from our ready file. Either way, run these checks before deploying.

1

Give it fresh UUIDs

Generate one UUID for the profile and one per payload. Reused UUIDs cause confusing install results.

uuidgen
2

Pick a stable identifier

Use a reverse-DNS name you own, such as your district's domain reversed. Keep it the same for every future version so updates replace the old profile.

3

Check the XML is valid

On a Mac, plutil reports syntax errors with a line number. A stray character in a long app list is the usual culprit.

plutil -lint blocklist.mobileconfig
4

Mind the size

Some MDMs cap custom profile size; Intune's limit is 1,000,000 bytes. Large category lists may need splitting into several profiles.

Sign the profile

Signing is optional when an MDM delivers the profile, since the MDM channel is already trusted. For profiles you hand out or install manually, a signature lets the device show who made it and proves the file was not changed.

Apple Configurator on a Mac

Open the profile, choose File > Sign Profile, pick your signing certificate and save. File > Unsign Profile removes the signature when you need to edit again.

macOS Terminal

Uses a signing identity from your keychain.

security cms -S -N "Your Signing Identity" -i blocklist.mobileconfig -o blocklist-signed.mobileconfig

OpenSSL on any system

Uses a certificate, its private key and the intermediate chain as files.

openssl smime -sign -signer cert.pem -inkey key.pem -certfile chain.pem -nodetach -outform der -in blocklist.mobileconfig -out blocklist-signed.mobileconfig

Use a certificate whose chain the devices trust. A profile signed with an untrusted certificate shows as unverified, which worries users even though it may still install.

Edit before you sign. Any change after signing breaks the signature. Keep the unsigned master, edit that, and sign a fresh copy each time.

Deploy it: MDM, Apple Configurator or by hand

The bundle ID lists only work on supervised devices, so the route you pick should match how your devices are supervised.

For whole fleets

Upload to your MDM

  • Intune: an iOS/iPadOS custom profile from the Templates list, uploading the file.
  • Jamf Pro: upload it as a mobile device configuration profile.
  • Meraki: Add profile, then Upload custom Apple profile.
  • Scope it to a test group first.
Small sets on site

Apple Configurator

  • Runs on a Mac and works over USB.
  • Select the devices, then Add > Profiles.
  • Devices supervised by Apple Configurator honour the block list.
  • Good for a lab or a single cart.
One device, testing

Install by hand

  • Open the file from Safari, Mail, Files or AirDrop.
  • The device shows Profile Downloaded.
  • Go to Settings > General > VPN & Device Management.
  • Tap the profile, Install, enter the passcode.
Apple Configurator for iPhone is a different app. It adds iPhones, iPads and Macs to Apple School Manager or Apple Business Manager from an iPhone running iOS 16 or later. It does not build or install profiles. See our Apple Business Manager guide.

How to use Apple Configurator for this job

Apple Configurator on a Mac is the quickest way to supervise a small set of iPads and load a profile in the same session. Labels may shift between versions, but the flow stays the same.

1

Install and connect

Get Apple Configurator from the Mac App Store, then connect the iPads by USB or a charging cart with data.

2

Prepare and supervise

Use Prepare to supervise the devices and, if you like, enrol them in your MDM or add them to Apple School Manager. Preparing erases the device.

3

Add the profile

Select the devices and choose Add > Profiles, then pick the .mobileconfig file. Many MDMs, Jamf Pro among them, also support enrolment through Apple Configurator, so the MDM can deliver later updates.

Block configuration profile changes

A blocklist is only useful if users cannot simply remove it or install a profile of their own. Three settings handle this on supervised devices.

SettingEffectNotes
PayloadRemovalDisallowedUsers cannot remove the profile.Supervised only. If the profile carries a removal password, users who know it can still remove it.
allowUIConfigurationProfileInstallationUsers cannot install profiles or certificates themselves.Supervised only. Profiles from your MDM still install.
Intune: Block configuration profile changesPrevents configuration profile changes on the device.In the iOS/iPadOS device restrictions, General section, for automated device enrolment.
MDM-installed profilesUsers cannot remove profiles that the MDM installed on iOS.Removing the MDM enrolment itself is controlled in your enrolment settings.

How to edit the configuration profile later

Lists change every month, so plan for updates from day one. The rule is simple: same identifier, new content.

Updating

  • Keep the top-level PayloadIdentifier exactly the same.
  • Change the bundle ID list.
  • Re-sign if you sign, then upload or install again.
  • The device replaces the old version.

Starting fresh

  • Use a new identifier only when you want a second, separate profile.
  • Otherwise devices end up with two overlapping lists.
  • Remove the old profile first if you change identifiers.
  • Document which identifier means what.
Looking ahead to iOS 27: Apple's reference marks the two bundle ID list keys as deprecated from iOS 27, in favour of a declarative app settings configuration with allowed and denied app lists for supervised devices. Deprecated keys keep working for now. Ask your MDM vendor when it will support the new configuration; the same bundle ID lists carry over.

How AppBlockList .mobileconfig files fit

Typing bundle IDs into a profile is where most blocklists go wrong: one typo and the app stays visible. Our files remove that step.

Pick categories

Choose AI tools, VPN and proxy, social media, gaming, gambling, dating and more, optionally with age ratings.

Get the profile

A Restrictions payload with every matching bundle ID, plus plain lists and a CSV with all columns.

Upload or sign

Upload it to your MDM as a custom profile, or sign it with your own certificate first if your process requires it.

Refresh monthly

Each month new apps are added and removed apps dropped. The identifier stays the same, so the update replaces the old one.

See the blocklist feed for all formats, or start from the AI apps list, the VPN and proxy apps list and the social media apps list. Questions about a custom set? Talk to us.

Check a bundle ID before you add it

Test the profile on one supervised device

  • plutil reports the file as valid.
  • The profile installs without errors on a supervised test iPad.
  • Settings shows the profile with the right display name.
  • A listed app vanishes from the Home Screen and search.
  • An unlisted app still opens normally.
  • The Remove button is missing if you disallowed removal.
  • A second version with the same identifier replaces the first.
  • An unsupervised test device installs it but hides nothing, as expected.

Common errors and fixes

The profile installs but apps are still visible
The device is not supervised, or it is on User Enrollment. Check for the supervised line at the top of Settings. Also confirm the bundle IDs are exact; they are case-sensitive.
Profile installation failed
Usually invalid XML or a missing required key. Run plutil, and check PayloadType, PayloadIdentifier, PayloadUUID and PayloadVersion at both levels.
The profile shows as unverified
It is signed with a certificate the device does not trust, or not signed at all. Sign with a certificate from a trusted chain, or deliver it through your MDM.
Intune rejects the upload
The file may exceed the 1,000,000-byte limit. Split the list into two profiles with different identifiers, for example one for games and one for the rest.
Two blocklists fight each other
When several restrictions profiles apply, Apple combines them and the most restrictive result wins. An allowlist plus a blocklist can hide more than you expect, so test both together.
Teachers lost built-in apps after an allowlist
allowListedAppBundleIDs hides every app not listed, including built-in apps such as Camera, apart from Settings and Phone. Add the built-in apps you need to the list.

Frequently asked questions

What is a mobileconfig file?
A .mobileconfig file is an Apple configuration profile: an XML property list that holds one or more payloads, such as Wi-Fi, VPN or Restrictions settings. iPhones, iPads and Macs install it through an MDM, Apple Configurator or a manual download.
Which key blocks apps by bundle ID in a configuration profile?
In the Restrictions payload (com.apple.applicationaccess), blockedAppBundleIDs hides and blocks the listed apps and allowListedAppBundleIDs shows only the listed apps. Both work from iOS 15 on supervised devices. The older blacklistedAppBundleIDs and whitelistedAppBundleIDs keys were deprecated in iOS 15.
How do I use a mobileconfig file on an iPhone?
Open the file from Safari, Mail, Files or AirDrop. The iPhone shows that a profile was downloaded. Go to Settings, then General, then VPN & Device Management, tap the profile, choose Install and enter the passcode. App blocking keys only take effect if the iPhone is supervised.
Is there an Apple Configurator app for Windows or Android?
No. Apple Configurator runs on Macs, and Apple Configurator for iPhone exists to add devices to Apple School Manager or Apple Business Manager. Android devices do not use configuration profiles; they get app rules from an Android Enterprise MDM.
How do I edit a configuration profile that is already installed?
Edit the file and keep the same top-level PayloadIdentifier, then install it again. The device replaces the old profile with the new one. If the file is signed, remove the signature first, edit, then sign it again.
How do I stop users removing or adding configuration profiles?
On supervised devices, set PayloadRemovalDisallowed to true so the profile cannot be removed without a removal password, and set allowUIConfigurationProfileInstallation to false so users cannot install their own profiles. In Intune the matching option is called Block configuration profile changes.
Do I need Apple Configurator to make a mobileconfig file?
No. A profile is a text file, so any editor works, and our files arrive ready to use. Apple Configurator on a Mac is handy for building other payloads with a form, for signing, and for installing profiles over USB.

Hiding the store as well? Read block the App Store on supervised iPads, and see Apple School Manager app management for supervising school devices.

Ready-made .mobileconfig blocklists

Every category as a tested Restrictions payload, refreshed monthly, alongside bundle ID lists and CSV files. Product makers can license the full app database instead.

Apple, iPhone, iPad, Mac, macOS, iOS, Safari, AirDrop, Apple Configurator, Apple School Manager and Apple Business Manager are trademarks of Apple Inc.

Microsoft Intune is a trademark of Microsoft Corporation. Jamf Pro is a trademark of Jamf. Cisco Meraki is a trademark of Cisco Systems, Inc. Android and Google Classroom are trademarks of Google LLC.

TikTok is a trademark of ByteDance Ltd. Snapchat is a trademark of Snap Inc. Roblox is a trademark of Roblox Corporation. NordVPN, Psiphon, DeepSeek, Khan Academy, Duolingo, Kahoot!, Seesaw, Libby and OpenSSL are trademarks of their respective owners.

Names are used only to identify the products discussed. AppBlockList is not affiliated with, sponsored or endorsed by these companies.