On October 4, 2024, the enterprise app we are using showed a "(app name) is no longer available" pop-up on certain devices and the app was not available.
And if those users delete the app and reinstall it, "I can't install (app name) because I can't verify integrity, I can't install this app" pop up.
The profile of the app was renewed in February this year, and membership, certificate, and profile were all not expired.
Currently, the problem has been solved by re-deploying the app,
Please tell me the cause of the phenomenon and how to take preventive measures.
Device Management
RSS for tagAllow administrators to securely and remotely configure enrolled devices using Device Management.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
**Hi Apple Developer Community,
Good Morning **
My Personal MacBook Air M1:
Mac OS: Sequoia, Version 15.0
Please note, this is my personal MacBook and I am the only one who is using it.
I can see System Configuration, Configuration Profiles and Kerberos on my personal MacBook Air M1
System Folder ---> Library ----> Configuration profile, System Configuration folders ?.
Attaching herewith the snapshot of the same.
Can some throw light on the same.
Do I need to remove the configuration profile, system configuration from my personal MacBook Air M1 which is seen in
System Folder ---> Library ----> Configuration profile, System Configuration folders ?
Also, I cannot edit the user in my name.
**Kindly assist me with the same.
Thanks and Regards,**
Omkar
We are in the process of replacing the TripleDES algorithm with AES in our MDM solution. However, after switching the encryption algorithm, we encountered the following error on Apple devices during enrollment:
Error: "-26275 error decrypting response payload (mdmclient(SCEP))"
Do Apple devices support AES encryption during the enrollment process, or are there any known limitations that prevent its use?
Technical Details:
During enrollment, when the device attempts to install the Management Profile, it requests the MDM server to retrieve the device certificate from the SCEP URL.
We send the certificate by creating Enveloped CMS content, using TripleDES as the algorithm identifier. If we switch the algorithm to AES, we observe the error mentioned above.
We are also using TripleDES when preparing the CMS content for the enrollment profile, which works without issues.
I am looking into bypassing the following popup when setting up an iPhone 15 Pro:
Would the SkipKey SIMSetup allow to bypass having the following window popup upon initial setup? So far all settings are bypassed during the initial setup of the phone and the application of Wi-Fi. The only issue present in the setup I want to achieve is prohibiting this window regarding eSIM set up.
https://support.apple.com/en-gb/guide/deployment/dep6fa9dd532/web dangles a carrot about being able to facilitate "A list of domains that the Shared iPad sign-in screen displays. The user can pick a domain from the list to complete their Managed Apple ID." - this sounds ideal!
In the absence of this seemingly being supported by Apple Configurator or iMazing Profile Editor at the time of writing, I have tried to create my own but I fall foul of knowing what PayloadIdentifier or PayloadType to use?
This is the draft/work in progress/doomed to failure config so far (which doesn't - as expected - work):
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>HasRemovalPasscode</key>
<false/>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDescription</key>
<string>Configures Managed Domains</string>
<key>PayloadDisplayName</key>
<string>Domains</string>
<key>PayloadIdentifier</key>
<string>com.apple.domains.DE12211A-CFDD-4F8C-8D7B-72E569CE3B6C</string>
<key>PayloadType</key>
<string>com.apple.domains</string>
<key>PayloadUUID</key>
<string>DE12211A-CFDD-4F8C-8D7B-72E569CE3B6C</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>WebDomains</key>
<array>
<string>domain.com</string>
</array>
</dict>
</array>
<key>PayloadDescription</key>
<string>For Shared iPad login convenience</string>
<key>PayloadDisplayName</key>
<string>DefaultDomain</string>
<key>PayloadIdentifier</key>
<string>Tom.77CF3CA5-4A48-41DD-9179-EF6F4C5E786E</string>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>A5594F17-155B-4A1C-8696-3F502D118C37</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
The support article is probably ~2-year old information so I'd have thought that by now that this would be documented somewhere - am I just not looking hard enough?
We are doing application assignment to personal iOS devices that are enrolled in MDM via User Enrollment. However, we're experiencing some odd behavior when assigning licenses.
We are getting back errors from the devices when doing assignments:
code: 12064, domain: MDMErrorDomain, description: Could not retrieve licence for the app with iTunes Store ID 422689480.
code: 2605, domain: DeviceManagement.error, description: No licence was found for app "com.google.Gmail".
However, we are not seeing license exhaustion on the Apple Business Manager side for our location.
We are not clear what would cause the 12064 or 2605 errors.
We have tried re-sending the command to install the app, and we have tried un-enrolling devices and re-enrolling, as well as updating the VPP Token for the location.
We have gathered sysdiagnoses from affected devices, but it's not clear what causes this. What other causes are there for 12064 and 2605 errors? How can we work around these?
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Enterprise
App Review
Apple Business Manager
Since this file is protected by SIP, it can't just be changed by an installer/app without prompting the user. If the user chooses to deny the request, the sudo file won't be updated with a security critical pam module.
I need to insert our custom pam module into /etc/pam.d/sudo without the user being able to deny the operation.
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Entitlements
Security
Device Management
Analytics report issues
I'm developing an ACME server to issue identity certificates to macOS/iOS devices for MDM attestation, following RFC 8555. Per RFC, the client creates an order, performs authorization, verifies the challenge, and finalizes the order by submitting a CSR to the CA.
In my setup, the CA sometimes takes longer to issue the certificate (around 50 seconds). According to RFC 8555, if certificate issuance isn’t complete after the /finalize call, the server should respond with an "order" object with a "processing" status. The client should then send a POST-as-GET request to the order resource (e.g., /order/<order_id>) to check the current state. If the CA still hasn’t issued the certificate, the server should return the order object with the same "processing" status and include a "Retry-After" header, indicating when the client should retry. The client is expected to poll the order resource at this specified interval with POST-as-GET requests.
However, it seems the Apple ACME client ignores the "Retry-After" header and instead returns the error: "Profile failed - Order status is processing, not yet valid" immediately upon the first poll response with "processing." Apple ACME client deviating from the RFC documentation.
Has anyone found a reliable solution to this issue? Or does Apple supports asynchronous order finalization?
Ref -https://datatracker.ietf.org/doc/html/rfc8555#:~:text=A%20request%20to%20finalize%20an%20order%20will%20result%20in%20error,to%20the%20%22certificate%22%20field%20of%20the%20order.%20%20Download%20the%0A%20%20%20%20%20%20certificate.
To work around this, I’m holding the /finalize call until the CA issues the certificate. This works when issuance is quick (under 20 seconds), but if it takes more than that , the client times out. Interestingly, the Apple ACME client’s timeout appears shorter than the usual 60-second URLSession default.
We use a profile that delays the installation of the new system in order to test it earlier.
Well Sequoia works differently and fails with our system, the manufacturer tells us to talk to Apple.
Does anyone have any idea about this?
My MDM is Mosyle
Topic:
Business & Education
SubTopic:
Device Management
Hello
Is there any official source from Apple listing all their models with their respective specs (mainly storage and device color)?
Third party open source exist, but it's incomplete, and we'd like to use an official source.
EG https://theapplewiki.com/wiki/Models
No "ML9C3" in that site.
Hello everyone.
Until macOS 14.x Sonoma, the Configuration Profiles, were hosted in System Preferences / Privacy & Security / Profiles.
Now, in macOS 15.x, they are hosted in System Preferences / General / Device Management.
The thing is, we need to hide this panel since it shows the initial password of a LAPS account to any user.
I have seen that in developer.apple.com in the Profile-Specific Payload Keys section, the object SystemPreferences have been Deprecated, and these are the ones we used until now to lock this panel, so it does not work anymore.
So that only the objects Restrictions works, in which it does not show any to block the Device Management panel.
Does anyone know how to hide/lock the new Device Management panel in System Settings?
Thank you very much!
Translated with DeepL.com (free version)
Topic:
Business & Education
SubTopic:
Device Management
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 allowed
forcePreserveESIMOnErase: Preserve eSIM on erase enforced
allowWebDistributionAppInstallation: Web app distribution not allowed
allowDiagnosticSubmission: Diagnostic submission not allowed
Would it be possible to prevent deletion of specific apps on iOS devices using MDM.
We have a development where we are MDM managing iOS devices and attempting to enforce mutual TLS for all interactions with the MDM. We are DEP provisionng an enrolment profile that utilises an ACME hardware attested Device Identity Certificate. All interactions with the MDM endpoints are correctly utilising the ACME certificate for the client mutual TLS handshake. The certificate has Client Authentication Extended Key Usage.
Behind the same API gateway and on the same SNI we are also serving paths to Enterprise application manifests and IPAs. We can see from the phone log and from packet traces the iOS device doesn't offer the Device Identity Certificate for client authentication when retrieving these URLs. We have also tried adding non ACME client certificates from the root trusted by the server to the initial profile with exactly the same outcome.
If we temporarily disable the mutualTLS we can see that the request for the manifest has a userAgent of
"com.apple.appstored/1.0 iOS/18.2 model/iPhone17,3 hwp/t8140 build/22C5125e (6; dt:329) AMS/1"
which is not the same as the mdm interactions. Is it actually possible to achieve mutualTLS to authenticate these downloads or is a different solution required ?
Any advice greatly appreciated.
We're implementing an MDM system and would like to know if we can get the type of CPU for an enrolled device, I know we can use IsAppleSilicon from the Device Information command but it would be good to know if it's an M1, M2, M3 etc.
We can implement a mapping of product name to CPU type, e.g. Mac16,1 has an M4 chip but this would mean ongoing maintenance that we'd prefer to avoid.
Is there a public web API (ideally first-party provided by Apple) that can be used to lookup details of a device by product name or similar?
Slightly related is the Declarative Device Management documentation for StatusDeviceModelMarketingName offers an alternative of:
use device.model.configuration-code to look up the marketing name through the web API
but doesn't mention which web API.
I have the following setup:
Managed domain (pdfforge.org)
Managed app (Dropbox) with Files app integration.
This can also occur with the following setup:
A custom browser is installed as managed (ex Firefox)
No managed domains
Managed app (Dropbox) with Files app integration.
Trying to upload a file from Dropbox in this managed domain by clicking on the Dropbox folder causes the folder to disappear and instead I am rerouted to the On My Phone directory.
On subsequent tries, sometimes the folder opens and I can see the files, but while scrolling the files disappear.
This makes it unable to upload any files from Dropbox to this managed domain.
If both the managed app and domains are not set up, then everything works normally.
Is this happening to everyone else? I also tried with Nextcloud and Google Drive.
On devices running iOS 18+, when a web app kiosk policy is pushed via an MDM and the device is restarted. The touch screen doesn't respond on the device. So the device is currently in a brick state. Since we can't enter the password we can't get the logs from the device and it is even hard to recover the device. On restart the device isn't connecting to the internet so it isn't possible to remove the kiosk policy as well. This only happens on devices running iOS 18+ and with web app kiosk profile.
I created a mobileconfig file on our self-developed MDM server and used Apple Configurator with a USB cable to prepare the device.
However, the profile installation failed and show the mdm payload is invalid must to be removed.
I suspect that the issue might be related to the CA (Certificate Authority) in the configuration, even though I have provided the ROOT SSL CA and the .p12 file.
What CA file should I include in the mobileconfig to resolve this issue?
using Apple Configurator to edit the mobileconfig file, but the MDM service is no longer displayed. How should I handle this
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