It's a great platform to grow your knowledge.
Apple Teacher
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
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
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.
I am checking the response of DeviceInformation Command to collect network information from iPad.
On iPad(iPad Pro 11, M4) devices that use WiFi without inserting Usim or Esim, network values such as CurrentMCC and ICCID are received in response to the DeviceInformation command.
cf.)Even though it may be garbage value, I blurred the unique information just in case.
<key>ServiceSubscriptions</key>
<array>
<dict>
<key>CarrierSettingsVersion</key>
<string>61.0</string>
<key>CurrentCarrierNetwork</key>
<string></string>
<key>CurrentMCC</key>
<string>450</string>
<key>CurrentMNC</key>
<string>08</string>
<key>EID</key>
<string>blah blah</string>
<key>ICCID</key>
<string>blah balh</string>
<key>IMEI</key>
<string>blah blah</string>
<key>IsDataPreferred</key>
<true/>
<key>IsRoaming</key>
<true/>
<key>IsVoicePreferred</key>
<false/>
<key>Label</key>
<string>Provisioning</string>
<key>LabelID</key>
<string>00000000-0000-0000-0000-000000000000</string>
<key>PhoneNumber</key>
<string></string>
<key>Slot</key>
<string>CTSubscriptionSlotOne</string>
<key>SubscriberCarrierNetwork</key>
<string>iPad</string>
</dict>
</array>
This is a bit weird. If I collect the same information from an iPhone(iPhone 15 Pro Max) that only uses wifi and does not use Usim or Esim, it does not respond with values like ICCID, CurrentMCC, etc.
<key>ServiceSubscriptions</key>
<array>
<dict>
<key>IMEI</key>
<string>blah blah</string>
<key>Slot</key>
<string>CTSubscriptionSlotOne</string>
</dict>
<dict>
<key>EID</key>
<string>blah blah</string>
<key>IMEI</key>
<string>blah blah</string>
<key>Slot</key>
<string>CTSubscriptionSlotTwo</string>
</dict>
</array>
I'm confused by the network information collected. Is there a reason why the collected network information of iPad and iPhone are different?
Topic:
Business & Education
SubTopic:
Device Management
Tags:
iOS
iPadOS
Core Telephony
Device Management
I am trying to find clarification on something. We are seeing strange cases where customer devices seem to unenroll themselves after a period of MDM inactivity. This seems to tie into roughly when their identity certificate has expired. We can't confirm this because the device has since unenrolled.
Is there any case where an Apple device will automatically unenroll if it's identity certificate has expired?
This doesn't always seem to happen - I had a device respond immediately after being switched off for a year - but could this be down to some devices being DEP enrolled and others manually enrolled?
Topic:
Business & Education
SubTopic:
Device Management
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
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
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!
Unable to distribute the App via Intune, When tried to install the App on Intune enrolled device.
Gets error: Unable to install “App Name”.
This app cannot be installed because its integrity could not be verified.
Verified Bundle ID is getting updated and Sign-in shows successful.
Mac OS Build - 13.7.2 (22H313)
XCode Version: 15.1 (15C65)
Provisioning Profile renewed this week
Distribution Certificate Valid till 2027
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
I have created a configuration profile which basically just turns off notifications for Shortcuts app but I am unable to install it on my iPhone as I am getting the following error “This profile can be installed on a supervised device only” can someone please help me with this? Would also appreciate if you have another way to turn off shortcuts notifications permanently since when I turn it off via screen time it keeps turning itself ON every couple of days.
Topic:
Business & Education
SubTopic:
Device Management
Hi Apple team and community,
We’re currently integrating with the Apps and Books for Organizations API as part of our device management solution and would like to highlight a few critical points we've encountered — including a reliability issue, an enhancement suggestion, and a request for clarification on API rate limits.
1. Issue: Intermittent 403 Errors with stoken-authenticated-apps Endpoint
We are encountering intermittent 403 Forbidden responses from the stoken-authenticated-apps endpoint.
Approximately 30–35% of the requests fail with a 403 status code.
These failures are inconsistent — the same request (using the same Content Token and Storefront) may succeed upon retry.
All requests are properly authenticated and include the required Cookie and other headers as specified in the API documentation.
This issue is impacting our ability to reliably fetch app metadata at scale, particularly in workflows.
We’d like to know:
Is this a known issue?
Could it be due to a rate limit or token misconfiguration?
Are any changes required on our end to avoid these failures?
2. Enhancement Request: Include externalVersionId in versionHistory Response
The versionHistory extension currently returns:
versionString
releaseNotes
releaseDate
However, for Declarative Device Management (DDM) workflows such as App Pinning, we need the externalVersionId as well. Without it, we can't reliably correlate version metadata with the specific version ID required for pinning.
Adding externalVersionId would:
Enable precise version targeting during App Pinning
Improve reliability and automation in managed deployments
We request that Apple consider including externalVersionId in the versionHistory response to better support DDM-based app lifecycle management.
3. Rate Limit Clarification
We found the following note in the Apps and Books for Organizations API documentation:
"The Apps and Books for Organizations API limits the number of requests your app can make using a developer token within a specific period of time. If you exceed this limit, you’ll temporarily receive 429 Too Many Requests error responses for requests that use the token. This error resolves itself shortly after the request rate has reduced."
While this confirms that a rate limit is enforced, there is no detailed information about the thresholds — such as the number of allowed requests per minute, hour, or day per developer token.
To help us implement proper throttling and retry strategies, we request clarification on the following:
What is the exact rate limit threshold per developer token?
Are there per-endpoint limits, or is it a global cap for all requests using the token?
Does the API return a Retry-After header when the limit is exceeded?
What is the recommended backoff strategy for clients to follow when receiving 429 errors?
This information would help us implement efficient throttling and error handling logic.
Any insights from the Apple team or other developers who’ve encountered these issues would be greatly appreciated!
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Apple Business Manager
Device Management
Hello,
I'm currently working on implementing app installation features, referencing the app.managed.yaml declaration on GitHub: https://github.com/apple/device-management/blob/0a4527c5ea21825fd23e08273ccdb9e2302458ce/declarative/declarations/configurations/app.managed.yaml
My question pertains to the InstallBehavior.Version key. The current specification indicates its type as <integer>:
key: Version
title: Version
supportedOS:
iOS:
introduced: '26.0'
macOS:
introduced: '26.0'
visionOS:
introduced: '26.0'
type: <integer>
Is there a way to specify the app version using a string format, such as x.y.z, instead of the integer (App Store External Version Identifier - EVID)?
Allowing for a simpler version specification would make app version management through MDM more flexible and efficient. I believe this would significantly streamline the deployment and operation of Apple devices within organizations.
Any guidance or consideration for this would be greatly appreciated.
Thank you.
Hello,
I am currently attempting to use declarative management to install enterprise application, however I am running into errors. Initially the device was failing to unpac the initial manifest it downloaded. After pulling logs from the device it was revealed that the manifest must include the bundle-version for it to parse as valid.
Adding this has allowed for the ipa to be fetched from the server however there is a secondary issue. The application is on the device but is unable to be opened due to the device being unable to validate its integreti. Any additional information would be useful. For completion the working manifest will be pasted below.
It should be noted that the manifest below does work when requesting application installs through MDM commands.
<***>
<items type="array">
<dict>
<assets type="array">
<dict>
<kind type="string">software-package</kind>
<url type="string">https://domain/web/mdm/ios/enterpriseipa/bundle.id</url>
</dict>
</assets>
<key type="dict" name="metadata">
<bundle-identifier type="string">bundle.id</bundle-identifier>
<kind type="string">software</kind>
<subtitle type="string">app</subtitle>
<title type="string">app</title>
<bundle-version type="string">x.x.x</bundle-version>
</key>
</dict>
</items>
</***>
</plist>
I want to install Chrome extension via configuration profile without user needing to go to System Settings and install profile manually.
Can i install configuraation profile by making user only interact with my app?
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
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
Hi Team,
After agreeing the Paid In-app purchase agreements, i have been asked to fill the tax forms of US Certificate of foreign status of beneficial owner and US substitute form W-8BEN-E.
Being an Indian Ed-tech company, we would like to know how should we approach this. Any help or support page or video on this can make our life easier.
Thanks
Team ACEplus.
Topic:
Business & Education
SubTopic:
General
Hello,
I am running into a bit of an issue with the Screen Timeout/Screen Lock setting and would like some clarification on.
First for a bit of context, I am enrolling personal iOS devices 18.0+ into the company MDM (Intune) with Account Driven User Enrollment. We are trying to set a screen timeout of 5 minutes and immediately after it asks for the passcode on the device, though this setting is not being applied and the device timeout setting can be set as "Never" on the user's end. This is a big security risk for the company I work for and and the issue with being HIPAA compliant.
According to the Microsoft Intune Support, "In iOS 18, when using Account-Driven User Enrollment for BYOD (Bring Your Own Device) scenarios, the screen lock timeout setting is indeed marked as “Not Applicable”. This is because Apple’s privacy-preserving model for personal devices restricts administrative control over system-level settings like screen lock or idle timeout."
I am needing clarification on the item mentioned from Microsoft Intune Support and if this setting is no longer able to be applied from the MDM with devices enrolled with Account Driven User Enrollment?
We’re using the Apple Developer Enterprise Program for internal app distribution. The Apple ID is a generic one using our domain email, but the Account Holder is a real person with authority in the organization.
For the payment method, we plan to use a corporate credit card — but it is issued under a different staff name (e.g. card under Chief, but Account Holder is IT Head).
Just want to check:
• Is this setup acceptable?
• Will Apple reject the enrollment/renewal if the card name doesn’t match the Account Holder?
• What’s the best practice in this case to avoid delays or verification issues?
Appreciate any guidance or experience from the community.
Thanks!