Hi, everyone! Is there any way to change ACL of existing Private key in system keychain using MDM?
We would like to add the binary or .app to access list of the key.
I tried to send script via MDM which imported/exported our certificate with private key with required ACL.
But can we change it without import/export?
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
Hello,
I've noticed some unexpected behavior when updating a user's FileVault password.
The set up:
All actions are performed in virtualized macOS 14 and 15.5 guests on a 15.5 Apple Silicon host.
FileVault is enabled.
sjsp is a standard user with a Secure Token.
The Mac is bound to AD, and the domain is reachable.
Reproduction:
systemctl -secureTokenStatus sjsp shows it's ENABLED.
fdesetup remove -user sjsp
fdesetup add -usertoadd sjsp
systemctl -secureTokenStatus sjsp shows it's DISABLED.
Surprisingly, sjsp is still able to unlock FileVault.
Looking at unified logs for opendirectoryd and fdesetup, I see that a password change is being attempted in response to fdesetup add, which is unexpected.
default 13:34:41.320883+0100 opendirectoryd Changing password for <private> (E5CC46D7-0C1F-4009-8421-9AA8217CB784)
info 13:34:41.321317+0100 opendirectoryd No unlock record exists for E5CC46D7-0C1F-4009-8421-9AA8217CB784
info 13:34:41.321331+0100 opendirectoryd <private> (E5CC46D7-0C1F-4009-8421-9AA8217CB784) is not a SecureToken user: no unlock record
default 13:34:41.321341+0100 opendirectoryd Changing password for <private> (E5CC46D7-0C1F-4009-8421-9AA8217CB784): user <private> SecureToken, only new password provided, credential <private>
default 13:34:41.321454+0100 opendirectoryd Changing password for <private> (E5CC46D7-0C1F-4009-8421-9AA8217CB784) with no existing unlock record
info 13:34:41.321857+0100 opendirectoryd No unlock record exists for E5CC46D7-0C1F-4009-8421-9AA8217CB784
default 13:34:41.321873+0100 opendirectoryd Record <private> (E5CC46D7-0C1F-4009-8421-9AA8217CB784) is eligible for SecureToken
default 13:34:41.322637+0100 fdesetup DMAPFS cryptoUserForMacOSUserForVolume DMErr=-69594 retErr=-69594 outAPFSCryptoUser=(null)
default 13:34:41.322699+0100 opendirectoryd While changing password for <private> (E5CC46D7-0C1F-4009-8421-9AA8217CB784): Not adding SecureToken; other unlock records exist, but no existing unlock record provided
If I disconnect the network and follow the reproduction steps then the Secure Token is retained. Reconnecting and waiting a while doesn't cause the Secure Token to be lost. There are no log entries about attempting to change the password.
Any help or explanation would be appreciated, thanks in advance.
On iOS 26, if in "Single App Mode", the device gets stuck on the lock screen.
Devices are configured in SAM (kiosk mode), without a PIN requirement. Since updating to iPadOS 26, every single device that locks (goes to sleep) becomes completely unresponsive at the lock screen. Touch input does not work.
The only way to regain access is to reboot the device, which will boot to the SAM app, but then lock again if it goes to sleep.
Related discussion in the public forums.
Topic:
Business & Education
SubTopic:
Device Management
Microsoft are retiring the “Azure AD Graph API”.
We allow the use of Apple email apps in our M365 tenant via the “Apple Internet Accounts” Entra ID Enterprise Application, however this is using the “User.Read” permission from this retiring “Azure AD Graph API”.
My concern is that Apple email app’s will stop working in our tenant when Microsoft retire the “Azure AD Graph API” and this permission is removed, as this is an Apple managed Enterprise Application, we have no method of changing the permissions ourselves.
I have not been able to find any information on how the “Apple Internet Accounts” Entra ID Enterprise Application can be updated to use the required, newer “Microsoft Graph API” “User.Read” permission.
It is not possible for us to change the permissions on the “Apple Internet Accounts” Entra ID Enterprise Application in our tenant, my assumption is that Apple would need to deploy a newer version of Email app that uses the newer “Microsoft Graph API” “User.Read” permission, and we would then need to consent the use of this new permission in our tenant.
I would have thought Apple would have deploy this by now, but we have not seen any consent requests.
Does anyone have any information about how Apple are handling this Microsoft change and how we can pre-emptively update the “Apple Internet Accounts” Entra ID Enterprise Application to ensure that Apple email client continue to work in our tenant?
Many thanks.
Topic:
Business & Education
SubTopic:
General
Is it mandatory to get explicit user consent in iOS apps to collect their product usage data anonymously with something like mixpanel.
Note: this is not for advertising purposes, but only to make the product better based on usage patterns.
Apple iPad Air device failing to enroll through ABM with "failed to retrieve configuration" error. This error occurs while reaching Apple ABM for fetching MDM server enrollment details. When we checked console logs when enrolling the device we found following error:
default 13:54:07.229022+1000 teslad Error: Error Domain=MCCloudConfigurationErrorDomain Code=34004 "The cloud configuration server is unavailable or busy." UserInfo={NSLocalizedDescription=The cloud configuration server is unavailable or busy., CloudConfigurationErrorType=CloudConfigurationFatalError}
default 13:54:07.229120+1000 Setup Service completed
default 13:54:07.230096+1000 Setup Could not retrieve cloud configuration. Error: <Error domain: MCCloudConfigErrorDomain, code 33001>\
Feedback raised along with screenshot and console logs as well : FB17785513. Please analyse this issue and reply back to us.
Topic:
Business & Education
SubTopic:
Device Management
Tags:
iPad
Apple Business Manager
Device Management
Hi everyone,
I submitted this feature request through Apple’s Feedback Assistant and wanted to share it here, because many families run into the same issue and Apple prioritizes features based on the number of reports they receive.
Current limitation:
Screen Time only allows one single Downtime period per day for child accounts.
For families with separate school hours and bedtime, this is very impractical.
My real-world use case:
• Downtime 1: 08:00–13:00 (school)
• Downtime 2: 20:00–06:00 (bedtime)
Both serve completely different purposes, but are not possible to combine with the current system.
My suggestions to Apple:
Support multiple Downtime periods per day for child accounts.
Allow custom exceptions per Downtime block (e.g., allow Phone app).
Provide more flexibility overall for families using Screen Time.
If you would benefit from this too, it would be great if you could submit the same request via the Feedback app – the more reports Apple receives, the higher the chance for implementation.
My Feedback ID: FB21265678
Thank you! 🙏
Hallo zusammen,
ich habe über die Feedback-App einen Vorschlag an Apple eingereicht und wollte ihn hier teilen, weil viele Familien dasselbe Problem haben und Apple mehr Rückmeldungen braucht, um das Thema zu priorisieren.
Aktuelles Problem:
In Bildschirmzeit kann für Kinder aktuell nur eine einzige Auszeit pro Tag eingerichtet werden.
Für Familien mit getrennten Schul- und Schlafenszeiten ist das extrem unpraktisch.
Mein Anwendungsfall:
• Auszeit 1: 08:00–13:00 (Schule)
• Auszeit 2: 20:00–06:00 (Schlafenszeit)
Beides erfüllt unterschiedliche Zwecke, ist aber nicht kombinierbar.
Mein Vorschlag an Apple:
Mehrere Auszeiten pro Tag für Kinderaccounts.
Pro Auszeit eigene Ausnahmen festlegen (z. B. Telefon erlauben).
Allgemein mehr Flexibilität im Screen-Time-System für Familien.
Wenn ihr das ebenfalls hilfreich findet, wäre es super, wenn ihr es auch über die Feedback-App meldet – je mehr, desto besser.
Feedback-ID meines Vorschlags: FB21265678
Danke euch! 🙏
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Device Management
Family Controls
Screen Time
I have a simple organization-info declaration that contains the following:
"Identifier": "com.example.declaration.org-info",
"Payload": {
"Email": "info@example.com",
"Name": "Example Organization Info",
"URL": "http://example.com"
},
"ServerToken": "c23b40ca47b11420",
"Type": "com.apple.management.organization-info"
}
And an activation that includes the org-info declaration:
"Identifier": "com.example.activation.org-info",
"Payload": {
"StandardConfigurations": [
"com.example.declaration.org-info"
]
},
"ServerToken": "5f6c37a6a0c44e35",
"Type": "com.apple.activation.simple"
}
When I check the status of the declaration, I see the following error:
"StatusItems": {
"management": {
"declarations": {
"activations": [
{
"reasons": [
{
"details": {
"Identifier": "com.example.activation.org-info",
"ServerToken": "5f6c37a6a0c44e35",
"ConfigurationIdentifiers": "com.example.declaration.org-info"
},
"description": "Activation (com.example.activation.org-info:5f6c37a6a0c44e35) is missing configurations.",
"code": "Error.MissingConfigurations"
}
],
"active": false,
"identifier": "com.example.activation.org-info",
"valid": "valid",
"server-token": "5f6c37a6a0c44e35"
}
],
"configurations": [],
"assets": [],
"management": [
{
"active": false,
"identifier": "com.example.declaration.org-info",
"valid": "valid",
"server-token": "542fded47e432de3"
}
]
}
}
},
"Errors": []
}
I'm not seeing the error in either the activation or the declaration that might throw this error. Does anyone have any insight?
Topic:
Business & Education
SubTopic:
Device Management
Hi,team:
I need to distribute an mdm configuration file containing the "ServiceManagementManagedLoginItems" service to a large number of company-supervised computers, where com.apple.servicemanagement only supports macOS 13.0+. However, I cannot effectively distinguish whether the device system where the mdm configuration file needs to be installed is greater than 13. Can I directly install the mdm configuration file on all devices? Will installing the mdm configuration file on devices less than 13 have any impact on the system or other configuration items in mdm? The description link of ServiceManagementManagedLoginItems is: https://developer.apple.com/documentation/devicemanagement/servicemanagementmanagedloginitems
Hey.
If i have a new idea for apple how can i reach out for you?
Topic:
Business & Education
SubTopic:
General
I recently reviewed the device management restrictions page of the developer docs (https://developer.apple.com/documentation/devicemanagement/restrictions) and noticed that several items are now marked "In a future release, this restriction will begin requiring supervision."
Some of these changes are likely to have a dramatic impact on our app and business! So my question is threefold:
a) where can I find out or request more information about the planned changes (e.g. timeline would be especially helpful)?
b) why are these changes being implemented at all?
c) to whom / where can I protest these changes (aside from this forum and feedback assistant)?
Hello everyone,
I recently changed the phone number associated with my Apple ID (about 4 days ago), but I’m still receiving the two-factor authentication verification codes on my old number instead of the new one.
Has anyone experienced this? Is there a delay on Apple’s side, or is there something else I need to do to complete the update?
Recently, we have encountered some users who have been unable to open the enterprise signature application after upgrading to version 18.3.2, without an IPS file. Through system logs, we found that signature verification has occurred SecKeyVerifySignature failed: Error Domain=NSOSStatusErrorDomain Code=-50 "rsa_pub_crypt failed, ccerr=-7" UserInfo={numberOfErrorsDeep=0, NSDescription=rsa_pub_crypt failed, ccerr=-7} Waiting for the information, I will provide the obtained system logs below. The application package name that crashed is com. mobile. moonew
Topic:
Business & Education
SubTopic:
General
Hello,
I am building a Content Filter app for iOS and would like to get access to some information about network connections that are happening on the device.
I managed to have the handle(_ report: NEFilterReport) method of my NEFilterControlProvider called, but the bytesOutboundCount and bytesInboundCount properties of the report are always 0.
How can I have the real byte count of the connection ?
What is the proper payload for the FDEFileVault?
Do I need to provide a user password in the payload to proceed with turning on the FileVault? Isn't that a privacy issue?
Why UserEntersMissingInfo does not work for me?
How to properly turn off FileVault - every try failed?
Below I attach tested payloads and results.
Test 1:
Enable: "On"
Result 1:
Error
ErrorCode: -319
LocalizedDescription: The ‘FileVault Settings’ payload could not be installed. User authentication failed.
Test 2:
Enable: "On"
Username: "username on a device"
Result 2:
Error
ErrorCode: -319
LocalizedDescription: The ‘FileVault Settings’ payload could not be installed. User authentication failed.
Test 3:
Enable: "On"
Username: "username on a device"
Password: "password of the user"
Result 3:
Success: FileVault turned On
Test 4:
After previously turning On FileVault successfully after restarting a machine.
Enable: "Off"
Result 4:
Fail: FileVault didn't turn off, but the profile in settings updated. The machine restart didn't help.
Test 5:
Enable: "On"
UserEntersMissingInfo: True
Result 5:
Error
ErrorCode: -319
LocalizedDescription: The ‘FileVault Settings’ payload could not be installed. User authentication failed.
Test 6:
Enable: "On"
Username: "username on a device"
UserEntersMissingInfo: True
Result 6:
Error
ErrorCode: -319
LocalizedDescription: The ‘FileVault Settings’ payload could not be installed. User authentication failed.
Test 7:
This is example payload from: https://developer.apple.com/documentation/devicemanagement/fdefilevault#Profile-Example
Defer: True
Enable: "On"
ShowRecoveryKey: True
UseKeychain: False
UseRecoveryKey: True
UserEntersMissingInfo: False
Result 7:
Success: FileVault turned On
Test 8:
Same as test 4, but after turning on like test 7.
Test 9:
Defer: True
Enable: "Off"
ShowRecoveryKey: True
UseKeychain: False
UseRecoveryKey: True
UserEntersMissingInfo: False
Result 9:
Fail: FileVault didn't turn off, but the profile in settings updated. The machine restart didn't help.
Test 10:
Defer: True
Enable: "Off"
ShowRecoveryKey: True
UseKeychain: False
UseRecoveryKey: True
UserEntersMissingInfo: True
Result 10:
Fail: FileVault didn't turn off, but the profile in settings updated. The machine restart didn't help.
Test 11:
Defer: True
Enable: "Off"
ShowRecoveryKey: True
UseKeychain: False
UseRecoveryKey: True
UserEntersMissingInfo: True
DeferForceAtUserLoginMaxBypassAttempts: 0
Result 11:
Fail: FileVault didn't turn off, but the profile in settings updated. The machine restart didn't help.
Test 12:
UserEntersMissingInfo: True
Enable: "Off"
Username: "username on a device"
Result 12:
Fail: FileVault didn't turn off, but the profile in settings updated. The machine restart didn't help.
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Enterprise
macOS
Business and Enterprise
Device Management
We are going to replace our iPhone SE to iPhone 16e.
The issue is that we are unable to install an in-house app on the new iPhone 16e. The app works on the iPhone SE
Both phones run on the same iOS version (18.5)
Has anyone else experienced the same issue?
I initially thought the iPhone 16e was the successor to the iPhone SE
Topic:
Business & Education
SubTopic:
Device Management
We are implementing the Return to Service (RTS) with App Preservation flow.
During testing, we were able to successfully fetch the Bootstrap Token as part of the ADE enrollment process. However, when attempting to initiate the Return to Service command with App Preservation enabled, the following error was returned:
[
{
"ErrorCode": 12089,
"ErrorDomain": "MDMErrorDomain",
"LocalizedDescription": "Could not erase device.",
"USEnglishDescription": "Could not erase device."
},
{
"ErrorCode": 66002,
"ErrorDomain": "MDMBootstrapTokenErrorDomain",
"LocalizedDescription": "Failed to generate LAContext for bootstrap token",
"USEnglishDescription": "Failed to generate LAContext for bootstrap token"
}
]
Below is the sample request (with dummy data). The actual request contained valid values in all fields:
<?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>Command</key>
<dict>
<key>RequestType</key>
<string>EraseDevice</string>
<key>ReturnToService</key>
<dict>
<key>Enabled</key>
<true />
<key>WiFiProfileData</key>
<data>WiFiProfileData</data>
<key>BootstrapToken</key>
<data>BootstrapTokenValue</data>
<key>MDMProfileData</key>
<data>MDM Profile Data</data>
</dict>
</dict>
<key>CommandUUID</key>
<string>3670</string>
</dict>
</plist>
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Apple Business Manager
Device Management
I am a developer distributing an enterprise app.
Recently, some users have intermittently encountered an error message on iOS 18.5 stating:
"Unable to install this app because its integrity could not be verified."
While the issue could not be reproduced on iPhone 15 / iOS 18.5, we have received reports that it does occur on the following devices:
iPhone 14 / iOS 18.5,
iPhone 14 Pro / iOS 18.5,
iPhone 14 Plus / iOS 18.5,
iPhone 16 Pro Max / iOS 18.5,
Are there any known issues or recommended solutions regarding this behavior?
Thank you in advance for your assistance.
Topic:
Business & Education
SubTopic:
General
For additional security we would like to avoid keeping generated certificates (their private keys) on our server after installing them on a device, but still be able to reference them in later installed configuration profiles via MDM. However, it seems that for a configuration profile's payload to use a certificate (e.g. VPN payload), the certificate payload must be present in the same profile.
Are we missing anything, perhaps it's already possible somehow?
Ideal workflow for us would be:
our MDM server generates a certificate (private+public keys) for a given device
our MDM server sends this certificate to the device as configuration profile and saves PayloadUUID of the certificate's payload
our MDM server deletes the generated private key from its storage. At this point the private key is present only on the device.
at some point in the future our MDM server sends a configuration profile that references the certificate from step 2 via the saved PayloadUUID (e.g. using key PayloadCertificateUUID in a VPN payload)
Current result: device responds to MDM server with error "The profile “VPN” could not be installed. Certificates needed for the VPN service “VPN” are invalid."
Desired result: device is able to find the previously installed certificate via its PayloadUUID. Alternatively, it could be certificate fingerprint or something similar.
One more alternative could be to replace steps 1-3 by an app on the device that obtains a certificate (in any way), installs it to device as a configuration profile, passes the certificate's PayloadUUID to our MDM server and then doing step 4.
Hello Apple Developer Community,
I am implementing the "Return to Service" feature with app preservation in our MDM solution (iOS 26+).
My goal is to use the EraseDeviceCommand to securely erase user data while preserving managed apps, and then have the device automatically re-enroll without user interaction.
What I am doing:
The device is supervised and successfully enrolled in Automated Device Enrollment (ADE).
The device has generated and escrowed a bootstrap token to our MDM server (SetBootstrapToken received).
I am sending the EraseDeviceCommand to the device via MDM with the necessary parameters for Return to Service with app preservation.
The command payload includes:
Enabled: true
The previously escrowed BootstrapToken (as Base64 data).
WiFiProfileData (as Base64 data) to ensure connectivity post-erase.
Example Payload Structure (Simplified):
<key>ReturnToService</key>
<dict>
<key>Enabled</key>
<true/>
<key>BootstrapToken</key>
<data>YOUR_BASE64_TOKEN</data>
<key>WiFiProfileData</key>
<data>YOUR_BASE64_WIFI_PROFILE</data>
</dict>
The observed behavior:
The erase command is successful.
The device performs the secure user data erase.
Crucially, the managed applications are preserved and automatically installed again after the reboot (confirming app preservation is working).
The device connects to the Wi-Fi network successfully.
The issue:
I am not seeing the GetBootstrapToken request from the device hit our MDM server's check-in URL during the post-erase setup assistant phase. The re-enrollment seems to complete, but this specific request is missing from our server logs.
My questions:
Is the GetBootstrapToken request an explicit check-in message type, or is it an implicit part of the general CheckIn process during ADE re-enrollment when the token is used?
If the device successfully re-enrolls and preserves apps, is the explicit GetBootstrapToken request still expected? Or does the token included in the EraseDeviceCommand payload satisfy all authentication needs for this workflow?
What specific conditions or capabilities on the MDM server side might prevent the device from sending this specific request, even if the overall process succeeds?
Any insights from Apple engineers or other developers who have successfully implemented this flow would be greatly appreciated.
Thank you!
Topic:
Business & Education
SubTopic:
Device Management