how can i generate MDM Push Certificate for my own MDM server. Please guide me on that.
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
Why is MDM camera restriction designed not to work on the lock screen?
Topic:
Business & Education
SubTopic:
Device Management
I tried the new feature of macOS 26.0 com.apple.configuration.app.managed.
A configuration and its activation are defined with the data like this.
InstallBehavior:
Install: Required
License:
Assignment: Device
iOSApp: true
AppStoreID: '1113153706'
After distributing the configuration with DeclarativeDevicement MDM command, an error is notified via status channel app.managed.list.
"managed": {
"list": [
{
"state": "failed",
"declaration-identifier": "1424a813-113f-5de0-9a75-38bf64f22673",
"identifier": "com.microsoft.skype.teams",
"name": "Microsoft Teams"
}
]
}
What am I missing in the settings?
Thank you
Topic:
Business & Education
SubTopic:
Device Management
Hi Apple Community,
I have been Testing with key allowAccountModification in macOS Restriction Payload and found some contrasting behavior
In macOS 14, macOS 15.1 in both of the OS Version when allowAccountModification is set to False it restricts adding new Account in System Settings and this is expected behavior
How ever things are contrasting and not going as expected in the below situation
When macOS 14 Version has 2 profiles for Restriction Payload one with allowAccountModification set to False and another with allowAccountModification set to True it restricts adding Apple Account
When macOS 15.1 Version has 2 profiles for Restriction Payload one with allowAccountModification set to False and another with allowAccountModification set to True it allows adding Apple Account
I remember when restrictions payload keys are contrasting across different profile Apple Uses the most restrictive one among them. But in macOS 15.1 the behavior is unexpected. Is this a issue in 15.1 and is there any list of macOS versions which shows this unexpected behavior
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!
Im trying to make my own iOS MDM Server with SCEP. I cant send a response to the PKIOperation without the iPad rejecting it. Can someone post the PKIOperation response structure
Topic:
Business & Education
SubTopic:
Device Management
In the RequestRequiresNetworkTether property, the definition of “network-tethered” is unclear, and there seems to be a discrepancy between the actual behavior and the description in the documentation.
We would like to clarify the definition of the connection state that “network-tethered” means and the specific behavior requirements when the property is set to true.
Explanation of the document
The description “If true, the device must be network-tethered to run the command.
I was not sure whether it refers to “network connection” or “tethered communication” as the Japanese translation.
Actual operation verification results
The error message was “The device is not tethered. (MDMErrorDomain:12081)”.
Error occurs when only carrier communication is used
The following connection conditions work normally (as in the case of false)
Wifi communication
Combination of carrier communication and Wifi communication
Tethering communication
Combination of carrier communication and tethering communication
Tethering connection (both parent and child devices)
Inconsistencies
Although the document description could be interpreted as a simple network connection requirement, actual operation is limited only to carrier communications alone
Error message uses language regarding tethering, but actual tethering connection works fine
Topic:
Business & Education
SubTopic:
Device Management
I registered in this summer, uploaded 2 apps. But recently I decided to add iAP to my apps, everything is ready, in Xcode sandbox everything works fine, but when I uploaded new version to TestFlight to test, when I tap on the subscription it says something like "Product not found". (I have added subscriptions to the app, and added them to the version before submitting, also, this version is in status "awaiting developer release" so I can tap a button and this new version with iAPs will be on App Store. But im unsure what to do, because exactly this verified by Apple's version is not working in TestFlight.)
In Business section of my Apple Developer Account in Agreements I only have agreement of free apps, but not about the paid apps.
When I registered I used my (R)(us)sian passport, I think this is the reason that I simply don't even have the agreement of paid apps to accept it.
I have multiple passports, and multiple EU debit cards. I emailed apple to change the location of my account (to another EU country), but they ghosted me. They sent me emails to upload documents about 4 or 5 times, every time I uploaded my another passport, got an auto email "thank you, we will write you in 2-3 days", but either they did not write me, or they said that the document is not in English (it isn't).
What do I do?
Also, to my situation, someone of my family has a company in (R)(us)sia, and I have in EU (Estonia). Maybe if nothing will work out with "Individual account", I should change to my company? And what is better EU or (R)(us)sian?
Im new to this community, hope to hear an answer, or just an advice. Thank you!
Topic:
Business & Education
SubTopic:
General
Tags:
App Store Connect
In-App Purchase
Business and Enterprise
Developer Program
I have a in-house delivered app, I updated certificates and delivered the app before expiring, inviting users to update. after certificates expiration people who did not update now must remove the app loosing personal data, and download it again, but app crashes.
I know that since iOS 18 in order to trust again an in-house identity, restart is required. What I need to know, is if there is some documentation where is explained the following:
if I remove the only app delivered by in-house enterprise profile I have on a customer device, via home, long time tap gesture, "remove the app" then I install again the app, the profile reappears under "VPN and device management" and results already as "trusted"
instead if I remove the app directly from settings > VPN and device management, when I re-install the app VPN and device management reappears and developer/app is not trusted, in it asks me to trust again the developer and during the operation, restarts the device, asks me device code and so on.
so, my final question is:
since it is clear to me that there is a difference between two removal methods, where is this logic described? Is it only present for in-house distribution?
Hi I am trying to develop Apple MDM solution as a vendor. I got the Vendor certificate from apple developer portal. When I was trying to generate the csr and upload to Portal (https://identity.apple.com/pushcert/) It says Invalid Certificate Signing Request. I had also tried to follow documentation (https://developer.apple.com/documentation/devicemanagement/setting-up-push-notifications-for-your-mdm-customers) but still the same error. Can anyone please guide how to generate the csr.
Topic:
Business & Education
SubTopic:
General
I am trying to create a DNS over HTTPS and DNS over TLS server that requires authentication with a client certificate and configure it in the Device Management Profile for use from the iPhone.
I have set the PayloadCertificateUUID in DNSSettings, but it appears that the client certificate is not being used.
Is there anything I should check in advance when using a p12 file with PayloadCertificateUUID?
Configuration Profile
<?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>PayloadType</key>
<string>Configuration</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>295E68E5-39F0-46D1-94E4-4A49EC8392E2</string>
<key>PayloadIdentifier</key>
<string>com.example.dns</string>
<key>PayloadDisplayName</key>
<string>My DNS</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>4CCEE94D-7B72-46AB-87AD-5A368F937339</string>
<key>PayloadIdentifier</key>
<string>com.example.dns.names</string>
<key>PayloadDisplayName</key>
<string>My DNS</string>
<key>PayloadDescription</key>
<string>DNS Settings</string>
<key>PayloadCertificateUUID</key>
<string>07A96080-5FAE-4026-937D-F578530E1444</string>
<key>DNSSettings</key>
<dict>
<key>DNSProtocol</key>
<string>TLS</string>
<key>ServerName</key>
<string><!-- my DoT server name --></string>
</dict>
<key>ProhibitDisablement</key>
<false/>
</dict>
<dict>
<key>PayloadType</key>
<string>com.apple.security.pkcs1</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>260CC26A-2DD1-4B16-B8C0-AF1E655576AD</string>
<key>PayloadIdentifier</key>
<string>com.example.certs.intermediate-ca</string>
<key>PayloadDisplayName</key>
<string>Intermediate CA</string>
<key>PayloadDescription</key>
<string>Intermediate CA</string>
<key>PayloadCertificateFileName</key>
<string>ca-chain.cert.cer</string>
<key>PayloadContent</key>
<data><!-- contents of Intermediate CA certificate --></data>
</dict>
<dict>
<key>PayloadType</key>
<string>com.apple.security.root</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>E5DB74AA-3C5F-470B-AAE0-DF072095A2EC</string>
<key>PayloadIdentifier</key>
<string>com.example.certs.root-ca</string>
<key>PayloadDisplayName</key>
<string>Root CA</string>
<key>PayloadDescription</key>
<string>Root CA</string>
<key>PayloadCertificateFileName</key>
<string>ca.cert.cer</string>
<key>PayloadContent</key>
<data><!-- contents of Root CA certificate --></data>
</dict>
<dict>
<key>PayloadType</key>
<string>com.apple.security.pkcs12</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>07A96080-5FAE-4026-937D-F578530E1444</string>
<key>PayloadIdentifier</key>
<string>com.example.certs.client.iseebi</string>
<key>PayloadDisplayName</key>
<string>Client Certificate</string>
<key>PayloadDescription</key>
<string>Client Certificate</string>
<key>Password</key>
<string><!-- password of p12 --></string>
<key>PayloadCertificateFileName</key>
<string>Key.p12</string>
<key>PayloadContent</key>
<data><!-- contents of p12 --></data>
</dict>
</array>
</dict>
</plist>
iPhone console log
Connection 3742: enabling TLS
Connection 3742: starting, TC(0x0)
Connection 3742: asked to evaluate TLS Trust
Connection 3742: TLS Trust result 0
Connection 3742: asked for TLS Client Certificates
Connection 3742: issuing challenge for client certificates, DNs(1)
Connection 3742: asked for TLS Client Certificates
Connection 3742: received response for client certificates (-1 elements)
Connection 3742: providing TLS Client Identity (-1 elements)
Connection 3742: providing TLS Client Identity (-1 elements)
Connection 3742: connected successfully
Connection 3742: TLS handshake complete
Connection 3742: ready C(N) E(N)
Connection 3742: received viability advisory(Y)
Connection 3742: read-side closed
Connection 3742: read-side closed
Connection 3742: read-side closed
Connection 3742: cleaning up
Connection 3742: done
server log (stunnel)
LOG5[9]: Service [dns] accepted connection from <IP>
LOG6[9]: Peer certificate required
LOG7[9]: TLS state (accept): before SSL initialization
LOG7[9]: TLS state (accept): before SSL initialization
LOG7[9]: Initializing application specific data for session authenticated
LOG7[9]: SNI: no virtual services defined
LOG7[9]: OCSP stapling: Server callback called
LOG7[9]: OCSP: Validate the OCSP response
LOG6[9]: OCSP: Status: good
LOG6[9]: OCSP: This update: 2024.12.06 08:32:00
LOG6[9]: OCSP: Next update: 2024.12.13 08:31:58
LOG5[9]: OCSP: Certificate accepted
LOG7[9]: OCSP: Use the cached OCSP response
LOG7[9]: OCSP stapling: OCSP response sent back
LOG7[9]: TLS state (accept): SSLv3/TLS read client hello
LOG7[9]: TLS state (accept): SSLv3/TLS write server hello
LOG7[9]: TLS state (accept): SSLv3/TLS write change cipher spec
LOG7[9]: TLS state (accept): TLSv1.3 write encrypted extensions
LOG7[9]: TLS state (accept): SSLv3/TLS write certificate request
LOG7[9]: TLS state (accept): SSLv3/TLS write certificate
LOG7[9]: TLS state (accept): TLSv1.3 write server certificate verify
LOG7[9]: TLS state (accept): SSLv3/TLS write finished
LOG7[9]: TLS state (accept): TLSv1.3 early data
LOG7[9]: TLS state (accept): TLSv1.3 early data
LOG7[9]: TLS alert (write): fatal: unknown
LOG3[9]: SSL_accept: ssl/statem/statem_srvr.c:3510: error:0A0000C7:SSL routines::peer did not return a certificate
LOG5[9]: Connection reset/closed: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
LOG7[9]: Deallocating application specific data for session connect address
LOG7[9]: Local descriptor (FD=10) closed
LOG7[9]: Service [dns] finished (0 left)
Topic:
Business & Education
SubTopic:
Device Management
During VPP app installation, the app-device asset association event took longer than the usual maximum of 30 seconds to complete, regardless of the number of app licenses involved.
Hello,
We are currently deploying Apple devices in our organization using Apple Business Manager (ABM) and are looking for a long-term self-hosted MDM solution.
We initially considered MicroMDM, but since official support will end in December 2025, we are evaluating NanoMDM.
I would like to confirm:
Is NanoMDM a stable and production-ready option for long-term use with Apple Business Manager and Automated Device Enrollment (ADE)?
Does NanoMDM support all essential features like:
Supervision
Remote wipe
App deployment
Configuration profiles
Are there any limitations or known issues with using NanoMDM?
Are there any other open-source or lightweight MDM solutions Apple developers recommend that are actively maintained?
We are aiming for a reliable, secure, and future-proof self-hosted MDM setup.
Any guidance or shared experience would be greatly appreciated.
Thanks,
Vijay Pratap Singh
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Apple Business Manager
Device Management
Hey Community!
I am seeking your help. I have tried Apple Support but to no avail. I know they are busy with a lot of requests, understandable.
I previously had my personal developer account (which I used to use for building apps). But then I started my own consultancy/business. Now I want to create apps for my organization.
From what I understood from their guidelines:
1/ Create a new individual account with your organization.
2/ Somehow link it to an organization account using DUNS number, etc.
I am still stuck at point 1 because it doesn't verify my personal ID (could this be because it is linked to my old personal account).
Can someone walk me through the process of creating an organization account?
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
Hi there,
I am trying to create an IPsec policy for remote access for iOS devices. Is the full updated list with all the settings, which are supported?
I could only find this article:
https://support.apple.com/de-de/guide/deployment/depdf31db478/web
But I am sure it's not updated:
Authentication Algorithms: HMAC-MD5 or HMAC-SHA1.
Same for DH Groups 2-5
VPP API v2 returns 9609 "Unable to find the registered user." when I disassociate assets from an existing user.
Repro step:
1. Create user
POST https://vpp.itunes.apple.com/mdm/v2/users/create
{
"users": [
{
"clientUserId": "client-1",
"managedAppleId": "valid managed apple id"
}
]
}
=> user is associated
2. Retire user
POST https://vpp.itunes.apple.com/mdm/v2/users/retire
{
"users": [
{
"clientUserId": "client-1"
}
]
}
=> user is retired
3. Recreate user with the same clientUserId
POST https://vpp.itunes.apple.com/mdm/v2/users/create
{
"users": [
{
"clientUserId": "client-1",
"managedAppleId": "valid managed apple id"
}
]
}
=> user is associated
4. Associate asset
POST https://vpp.itunes.apple.com/mdm/v2/assets/associate
{
"assets": [
{
"adamId": "408709785"
}
],
"clientUserIds": [
"client-1"
]
}
=> asset associated
5. Disassociate asset
POST https://vpp.itunes.apple.com/mdm/v2/assets/disassociate
{
"assets": [
{
"adamId": "408709785"
}
],
"clientUserIds": [
"client-1"
]
}
=> {"errorNumber":9609,"errorMessage":"Unable to find the registered user."}
Notes
associate API works fine with the same payload.
disassociate work with v1 API.
Hi,
I am experiencing an issue with in-house apps on iOS 18.
When the MDM profile is removed, newly installed in-house apps cannot be opened.
However, previously installed in-house apps still work fine until the device is restarted.
Context:
Our in-house apps are not distributed via MDM but through an internal company app store.
These apps are signed with an enterprise certificate and have been working fine on previous iOS versions.
Steps to reproduce:
Install an in-house app while the MDM profile is active -> The app works fine.
Remove the MDM profile.
Install a new in-house app (signed with the same enterprise certificate)
The newly installed app does not open at all.
The existing in-house apps installed before MDM removal continue to work normally.
Restart the device.
Now, even the previously installed in-house apps no longer open.
Observed behavior:
The newly installed in-house app does not open, and no trust prompt appears in Settings > General > VPN & Device Management.
The previously installed in-house apps continue to function normally until the device is restarted.
After restarting, none of the in-house apps open anymore.
Is there a now restriction in iOS 18 regarding in-house app installation after MDM removal?
Any insights or solutions would be greatly appreciated!
Thank you.
Topic:
Business & Education
SubTopic:
General
We are experiencing a critical issue where VPP app installations are consistently taking an excessive amount of time, leading to significant delays in asset association. We are deployionThis is a systemic problem that affects all VPP apps, not just an isolated case.
Apps:
39470db7-e475-4269-9709-c80641657027 =>
com.zimride.instant
d0876900-2579-463e-99f1-b7c85ef5c5e8
com.microsoft.azureauthenticator
Troubleshooting:
We have performed extensive troubleshooting and can confirm the following:
VPP Token: The VPP token has been successfully renewed and is currently active and valid.
License Availability: We've verified that there are sufficient VPP licenses available for the apps being deployed.
Device Status: We've attempted the following on the affected devices:
Restarted the devices.
Switched to different Wi-Fi networks.
Uninstalled and re-installed the apps.
App Status: The issue is not limited to a single app; all VPP apps are failing to install.
License Revocation: We attempted to revoke and reassign licenses for some devices, but this did not resolve the issue. The app was not pushed, and the pending status remained.
Troubleshooting:
Through our internal investigation, we have determined that the core issue is that the Asset Association Status is consistently taking excessive time. This seems to be preventing the app installation queue from processing.
We have observed a significant delay in the processing of events within the Notification Channel. The time between the event being created and a response being received is excessively long, indicating a potential backlog or issue. We have included a few recent examples below for your reference:
Event ID: 39470db7-e475-4269-9709-c80641657027
com.zimride.instant
Created Time: 2025-08-26 01:02:04
Response Time: 2025-08-26 01:34:05
Event ID: d0876900-2579-463e-99f1-b7c85ef5c5e8
com.microsoft.azureauthenticator
Created Time: 2025-08-25 21:16:29
Response Time: 2025-08-25 22:21:07
We would appreciate your help in the following areas:
Resolution: Could you provide any known solutions or workarounds for an asset association status that is taking excessive amount of time'?
Best Practices: Are there any recommended best practices or additional parameters we should be checking with the MDM that might influence the queueing of VPP app assignments?
Queueing Parameters: Could you provide insight into the parameters or conditions that can affect the queueing and processing of VPP app installations on Apple's servers?
Please let us know if there is any additional information or logs we can provide.
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Business and Enterprise
Apple Business Manager
Device Management
I originally posted here & was referred to post in developer forumsn.
https://discussions.apple.com/thread/256036430?login=true&sortBy=rank&answerId=261319559022
There has to be someone else out here that's gone through this. I've tried everything I can think of, forums, reddit, Microsoft documentation.... just can't find any clear cut method of doing this.
I'm working on an InTune Mobile App Protection Policy. I know there are going to be some VPs out there asking why they can't use native iOS Apps, especially Apple Calendar, Contacts & Mail.
I have not been able to get anywhere, I always end up with this error.
Things I've tried:
Allow sync of native apps with work account
Putting in app exemptions (But I don't truly know if I know if I have the right values for this and there's no simple way of getting it from what I've seen. Having to download app to PC, finding config files, finding specific values.... that people say are hit or miss).
Allow data transfer of ALL Apps
What am I missing here? I'm pretty much giving up and just going to say sorry, you can't use Native apps.. Period!
Anyone have any experience with this, especially for Mail, Calendar & Contacts?
Thank you for anyone that can offer advice on this.
Topic:
Business & Education
SubTopic:
General