I have an issue with my MDM setup. The Push notification that installs and updates configuration profile in the device is no longer working. It was working
before Apple developer account got expired
we renewed our apple developer account and then retried and we got the device enrollment working just fine. Now when we are updating configuration profile and MDM server is supposed to notify the device using push notification, this is the part where its not working.
Are the certs faulty now since the account was expired?
Would just renewal of the Push cert work?
Will I have to setup the certs all over again?
Any help is appreciated. Thanks in advance.
Explore the intersection of business and app development. Discuss topics like device management, education, and resources for aspiring app developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I'm are attempting to use the device management migration feature in Apple Business Manager / Apple School Manager (for devices running iOS 26 / iPadOS 26) to re-assign managed devices from one MDM server to another. We followed the published procedure (select device(s) → Assign Device Management → Set deadline → Continue).
However, we are observing that on the device side, no notification or prompt appears to the user (such as “Enrollment Required” or “Your organization requires this device to enroll in a different device management service”), even after the migration deadline has passed.
Here are the environment details:
Device OS version: (iOS 26.1)
Device ownership: enrolled via
Automated Device Enrollment
MDM re-assignment in ABM: old MDM server(name: https://dev5.clomo.com/panel/mackey-dev/ ) → new MDM server (name: https://obliging-bunny-equally.ngrok-free.app/ )
Deadline set: (12/10/2025 12:00 AM)
Network connectivity: confirmed online at deadline time
We would like to know:
Under what exact conditions will the device display the notification/prompt, and what common mis-configurations prevent it from appearing?
Is there any device log or activity indicator in ABM/ASM to confirm that the migration instruction has been sent to the device?
In cases where the prompt does not appear, what troubleshooting steps can we perform on the device (or in the MDM/ABM configuration) to correct it?
I have come across this Hideable attribute for managed apps, introduced in iOS 18.1, and I've encountered some behavior that seems to contradict the official documentation.
According to Apple's documentation for app.managed.yaml, setting the Hideable key to false under the Attributes section should prevent a user from hiding the app. The documentation explicitly states:
If false, the system prevents the user from hiding the app. It doesn't affect the user's ability to leave it in the App Library, while removing it from the Home Screen.
I have configured this in my app.managed.yaml and successfully applied the profile to my test device via our MDM server. However, I am still able to hide the application from both the Home Screen and the App Library.
Here are the steps I'm taking to hide the app:
Long-press the app icon on Home Screen
Select "Require Touch ID"
Select "Hide and Require Touch ID"
Authenticate using Touch ID
Select "Hide App"
After these steps, the app is no longer visible on the Home Screen or in the App Library, which is contrary to the behavior described in the documentation for when Hideable is set to false.
My question is:
Is this a known issue or a potential bug in iOS 18.1? Or, is there an additional configuration profile or a specific device supervision requirement that I might be missing to enforce this restriction correctly?
Any clarification would be greatly appreciated!
Thank you!
We've disabled FUS through a config profile, but users can still access FUS by enabling the MenuBar/Control Center icons. My org would like to prevent access to FUS so I've created a config profile. But the profile doesn't seem to work.
Anyone have any ideas what I'm missing, or is this an OS bug?
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadDisplayName</key>
<string>macOS - Tahoe - Disable Fast User Switching Control Center</string>
<key>PayloadIdentifier</key>
<string>com.myorg.fast-user-switching</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadUUID</key>
<string>f1a2b3c4-d5e6-7890-abcd-ef1234567890</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>TargetDevmyorgType</key>
<integer>5</integer>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>com.apple.controlcenter</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadIdentifier</key>
<string>com.apple.controlcenter.57EBEF9E-E568-411E-AE27-500AD98C94F4</string>
<key>PayloadUUID</key>
<string>f1a2b3c4-d5e6-7890-abcd-ef1234567890</string>
<key>UserSwitcher</key>
<integer>8</integer>
</dict>
<dict>
<key>PayloadType</key>
<string>.GlobalPreferences</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadIdentifier</key>
<string>.GlobalPreferences.71DE1486-60BC-4CB9-890D-AD50A772890D</string>
<key>PayloadUUID</key>
<string>c5234012-e0sw-2066-6fl8-3bd5p8125op7</string>
<key>MultipleSessionEnabled</key>
false/>
</dict>
</array>
</dict>
</plist>
Topic:
Business & Education
SubTopic:
Device Management
Apple face app is used to fore video calling and chatting and voice calling AP same a what’s app tango etc…
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Scribble
iCloud Drive
AirPlay 2
Tap to Pay on iPhone
We are having issues working with bypass codes the server creates when initiating Activation Lock through MDM.
We are able to use the device-generated bypass codes without issue.
When using the end point to request activation lock as specified in https://developer.apple.com/documentation/devicemanagement/creating-and-using-bypass-codes/ we get a 200 response. But when using the endpoint to bypass the activation lock, we get a 404 response. If we try to manually input the activation lock bypass code, it also does not work.
Both of these methods work with the device-generated bypass codes.
Just to clarify when testing the server generated codes, we ensured that we did not test the device-generated codes.
All of this was tested on iOS devices.
Created feedback ticket FB21365819 with device specific details.
Hi all,
I'm implementing Intune MAM to secure applications on iOS. However, I need my users to be able to save files (e.g. attachments in an email in the Outlook app) to iOS Files. To do so, I'm trying to put Files in exception of my Intune MAM policy and I need to obtain the Files "CFBundleURLSchemes" value from the info.plist file of the Files app. I'm not able to get that information.
Are any of you able to get that somehow?
Thanks!
As we know, we can't add restrictions payload in the mobileconfig when registing the device.
We are developing MDM by ourselfs, met some trouble.
Please help.
Topic:
Business & Education
SubTopic:
Device Management
Finally got to the stage where the ACME certificate profile is successfully installed. However, the public key/certificate itself isn't appearing in the System Keychain. I'm not sure if this is normal or if it's an indication that something went wrong after the profile installation. Unfortunately, I didn't study the log detail at the time and I'm uncertain of how to retrieve those logs from two days ago for the ACME activities.
Can anyone confirm that macOS 26 should be storing ACME-retrieved MDM profile-based certificates in the System Keychain? If they should be there, what can possibly go wrong? The most obvious issue I can see is that the ACME server has requested the certificate with two CN's, which comes from the MDM profile asking for the subject against CN and the OID (2.5.4.3). Both CN's are identical.
I'm surprised the profile installed if something is wrong. At first, I assumed Apple had decided to stop installing the certificates into the System Keychain.
Topic:
Business & Education
SubTopic:
Device Management
I've been running the betas fine for a while, now, where do you want to go??
Topic:
Business & Education
SubTopic:
Device Management
Dear Team,
We are working on retrieving email address of the user joined to Entra ID from Entra-joined macOS devices, specifically while running in a system context.The sudo dscl . -read /Users/$(whoami) RecordName command give the local user name whose password is synced with the entra ID. We would greatly appreciate guidance on how to retrieve the Entra ID joined user’s email address in a system context from Entra Joined mac devices, especially from those with prior experience in this area.
Thank you for your support.
Hello!
I’m testing certificate issuance using a locally running Smallstep step-ca ACME server with the device-attest-01 challenge.
I’ve created a custom MDM profile for this purpose. When I install the profile, the certificate is issued successfully, but it is not saved to the Keychain as stated in the documentation. I can only see the certificate via mdmclient or in the Wi-Fi settings dropdown menu.
Is this expected behavior, or are there additional settings that need to be included in the MDM profile?
Topic:
Business & Education
SubTopic:
Device Management
Can I upload custom app onto the ABM? if yes then how can we install it into the user's devices?
Topic:
Business & Education
SubTopic:
General
Issue Description:
We are experiencing MDM profile installation failures specifically on iPhone 17
devices. After extensive testing and comparison between affected and working
devices, we suspect this appears to be a parameter transmission error rather
than device settings.
Technical Analysis:
Device Settings Comparison: No differences found between problematic and
working devices in system settings, indicating this is not a configuration
issue.
Suspected Parameter Transmission Error:
• Device model information appears to be restricted or blocked during profile
download
• User ID and phone number parameters are not being transmitted to the server
• Installation logs show missing login ID and phone number entries
Symptoms:
• During MDM profile installation, the "Apps & Restrictions" section that should
appear is missing
• Profile download parameters are suspected to not be properly transmitted to
the server
• Installation process fails at the profile configuration stage
Critical Finding:
When we cloned a previously working device to create a problematic device
configuration, the cloned device also began experiencing the same installation
failures. This strongly suggests the issue is related to device-specific
parameters or identifiers.
Additional Information:
We continue to receive reports of this issue from our iPhone 17 users, and these
reports are occurring across various iOS versions.
Request for Assistance:
Has anyone encountered similar MDM profile installation issues on iPhone 17? Are
there known limitations or changes in how device parameters are transmitted
during MDM enrollment on this model?
Any guidance on debugging parameter transmission or known workarounds would be
greatly appreciated.
Topic:
Business & Education
SubTopic:
Device Management
Hi Team, As per this documentation Handling NotNow Status Responses | Apple Developer Documentation, the last command that is delivered to the device on a connection should be the one that the device reported NotNow so that the device will automatically retry when it is ready to consume commands. Our question is it possible to have a fixed command which we can try at the end once all commands are tried and if device has reported NotNow for any of the commands.
E.g. If there were 3 commands delivered to the device one by one
SSO profile (com.apple.sso ) was delivered and device reported NotNow
VPN profile (com.apple.vpn.managed) was delivered and the device reported NotNow
DeviceInformation command was delivered and the device reported Acknowledged.
As there were NotNow responses earlier, can we try a certificate profile(com.apple.security.pkcs1), with a dummy certificate payload, to ensure that the last command delivered to the device in this connection is responded with NotNow.
Questions:
Can we use a fixed command e.g. certificate profile(com.apple.security.pkcs1) as in above example to ensure the last command delivered to the device has NotNow response. Or is it better to try one of the commands which the device reported NotNow earlier. As in above example should we try the SSO or VPN profile at step 4 instead of the certificate profile?
Following up to above, when a device reports NotNow for any profile installation command, can we say it will always report NotNow for certificate profile(com.apple.security.pkcs1) as well for all iOS and MacOS devices?
Topic:
Business & Education
SubTopic:
Device Management
We are expering frequent delays recently when associating a device serial with the adamid of an app in our business manager account. I get an event id back when calling the /associate api but when i check the status of that event id is can be sat in a pending state for sometimes several hours. Need to understand why and if its a configuration issue
Topic:
Business & Education
SubTopic:
Device Management
It's a great platform to grow your knowledge.
Apple Teacher
We want to set key-value pair (installation_token: xxxxx) into an app installed by MDM.
Formerly we could set the key-value using Settings MDM command like this.
<dict>
<key>Command</key>
<dict>
<key>RequestType</key>
<string>Settings</string>
<key>Settings</key>
<array>
<dict>
<key>Configuration</key>
<dict>
<key>installation_token</key>
<string>xxxxxxx</string>
</dict>
<key>Identifier</key>
<string>com.cloudflare.cloudflareoneagent</string>
<key>Item</key>
<string>ApplicationConfiguration</string>
</dict>
</array>
</dict>
We can still use this for the apps installed withInstallApplication MDM command, however we cannot apply this configuration into the app using Declarative Device Management. When we try it, we got an error like this.
<dict>
<key>CommandUUID</key>
<string>.............</string>
<key>Settings</key>
<array>
<dict>
<key>ErrorChain</key>
<array>
<dict>
<key>ErrorCode</key>
<integer>12008</integer>
<key>ErrorDomain</key>
<string>MDMErrorDomain</string>
<key>LocalizedDescription</key>
<string>Could not modify apps managed by Declarative Device Management.</string>
<key>USEnglishDescription</key>
<string>Could not modify apps managed by Declarative Device Management.</string>
</dict>
</array>
<key>Identifier</key>
<string>com.cloudflare.cloudflareoneagent</string>
<key>Item</key>
<string>ApplicationConfiguration</string>
<key>Status</key>
<string>Error</string>
</dict>
</array>
How can we work with managed application configuration with DDM?
Steps to Reproduce
Step 1: Fetch Initial Device List
Called the device list endpoint to retrieve all devices and saved the cursor:
GET https://mdmenrollment.apple.com/server/devices
Step 2: Modify Devices
Added and deleted several devices via https://business.apple.com/
Step 3: Sync Without Pagination
Called the sync endpoint using the cursor from Step 1 (no limit):
GET https://mdmenrollment.apple.com/devices/sync?cursor={step1_cursor}
Result: Returned 3 device records as expected:
{
"devices": [
{
"serial_number": "F70JJ4C16L",
"op_type": "added",
"op_date": "2025-12-11T07:05:05Z"
},
{
"serial_number": "F70JJ4C16L",
"op_type": "deleted",
"op_date": "2025-12-11T07:04:36Z"
},
{
"serial_number": "C8RWGXZXJWF5",
"op_type": "deleted",
"op_date": "2025-12-11T07:04:52Z"
}
],
"more_to_follow": false
}
Step 4: Sync With Pagination (First Page)
Called the sync endpoint using the same cursor from Step 1 with limit=1:
GET https://mdmenrollment.apple.com/devices/sync?cursor={step1_cursor}&limit=1
Result: Returned 1 record with more_to_follow: true — indicating more data exists:
{
"devices": [
{
"serial_number": "F70JJ4C16L",
"op_type": "added",
"op_date": "2025-12-11T07:05:05Z"
}
],
"more_to_follow": true,
"cursor": "MTowOjE3NjU0MzgyNDI5ODc6..."
}
Step 5: Sync With Pagination (Second Page)
Called the sync endpoint using the cursor from Step 4 with limit=1:
{
"devices": [],
"more_to_follow": false
}
Expected Behavior
When paginating with limit=1, the API should return all 3 records across 3 sequential requests.
Actual Behavior
Without pagination: Returns 3 records ✓
With pagination (limit=1): Returns only 1 record, then empty array ✗
2 records are missing when using pagination.
Impact
This inconsistency makes the sync API unreliable for incremental device synchronization workflows.
Topic:
Business & Education
SubTopic:
Device Management
Hi,
We developed a Platform SSO extension for our IdP, Keycloak. It would be great to get some feedback on it:
https://francisaugusto.com/2025/Platform_single_sign_on_diy/