Hello world! First post here.
Developing my first app. It primarily targets supervised and MDM managed devices. A few questions:
For supervised devices, is serial number available? I want to get the number and use it for app auto activation
Is MDM required for supervised devices? Or, as long as a device is enrolled through Apple Business Manager?
Which capacity shall I request for the app?
Thanks so much!
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
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.
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
Hi,
I have created a game for all platforms (except VisionOS) and would like to release each version separately. Can I upload the iOS version without uploading the other versions?
Thanks,
Dan Uff
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
Three months ago I molded a mold program. I believe could be tweaked and tried unlined zero code. swear. anyway I would like to scale with some people if I can go to commercial area code phoned series and calls.and if I have rights. but my next moves for them. on iOS I think they should have a seri settings. where they can call seri.on settings, and it jump many codes-and navigation is hard. plus I think seri can help in settings expecially since seri settings is verbal drop. if the words fit or are similar it cues goes to but you have to hard call the switch.so there’s no hey no Sami where you setting no Sammy right I think it could skip cauldron and everything verbally either. Seri settings I think iOS should try it.
Topic:
Business & Education
SubTopic:
Device Management
Can anyone walk me through on how to generate QR code for payment and send invoices?
Topic:
Business & Education
SubTopic:
General
It would often be useful to deactivate horizontal scrolling, especially for number sheets.
So I have customized these 2 files.
But no success. Nothing happens. Scrolling is still possible in both directions. Vertically and horizontally.
Does anyone have an ingenious idea?
Topic:
Business & Education
SubTopic:
Device Management
Hi everyone,
I’m working as an IT engineer in the cruise industry and need to troubleshoot passenger complaints about Apple’s new RCS messaging feature (introduced with iOS 18). Could someone help confirm which domains and ports iPhones use when they send RCS messages? My firewall team wants specifics: domains (or subdomains) that need whitelisting and the ports involved.
Any official or community-sourced info would be super helpful—thanks in advance!
Topic:
Business & Education
SubTopic:
General
Is a student from a postgraduate course eligible to participate in the Apple Swift Student Challenge?
Hi Apple Team & Community,
The new Introduction of Platform SSO during ADE Enrollment is Great And we tried implementing this. As a Rule mentioned in the Documentation Initially MDM Server should send 403 response with Response Body adhering to ErrorCodePlatformSSORequired when HTTP Header for MachineInfo request contains MDM_CAN_REQUEST_PSSO_CONFIG and set to true
There are contradictory claims mentioned in Document,
In Process Platform SSO Required Response it is mentioned that MDM Server should send body as JSON Object for ErrorCodePlatformSSORequired Example below
>>>>> Response
HTTP/1.1 403 Forbidden
Content-Type: application/json
Content-Length: 558
{
"code": "com.apple.psso.required",
"description": "MDM Server requires the user to authenticate with Identity Provider - BY MEMDM",
"message": "The MDM server requires you to authenticate with your Identity Provider. Please follow the instructions provided by your organization to complete the authentication process - BY MEMDM",
"details": {
"Package": {
"ManifestURL": "https://platform-sso-node-server.vercel.app:443/manifest"
},
"ProfileURL": "https://platform-sso-node-server.vercel.app:443/profile",
"AuthURL": "https://platform-sso-node-server.vercel.app:443/auth"
}
}
But in the same Document a Sample HTTP Response was Provided but seems to be XML format as below
>>>>> Response
HTTP/1.1 403 Forbidden
Content-Type: application/xml
Content-Length: 601
<?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>Code</key>
<string>com.apple.psso.required</string>
<key>Details</key>
<dict>
<key>ProfileURL</key>
<string>https://mdmserver.example.com/psso.mobileconfig</string>
<key>Package</key>
<dict>
<key>ManifestURL</key>
<string>https://mdmserver.example.com/psso-app.plist</string>
</dict>
<key>AuthURL</key>
<string>https://idp.example.com/authenticate</string>
</dict>
</dict>
</plist>
From Github I assume that both Response Types are welcomed hence I tried with Both
Followed in JSON Mode, I redirected the HTTP request if MachineInfo contains MDM_CAN_REQUEST_PSSO_CONFIG and set to true to https://platform-sso-node-server.vercel.app/redirectedDEPJSON
Followed in XML Mode, I redirected the HTTP request if MachineInfo contains MDM_CAN_REQUEST_PSSO_CONFIG and set to true to https://platform-sso-node-server.vercel.app/redirectedDEPXML
In both Response Modes OS is not proceeding after and a error Stating Enrollment with Management Server Failed , Forbidden request (403) appears
Can someone kindly guide on where I missed, or is this any OS Bug in Tahoe 26?
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Apple Business Manager
Device Management
Platform SSO
We have an office application used internally within our enterprise. The Provisioning Profiles (PP) for the app were about to expire, so we updated the PP and released a new version. However, we've encountered an issue where some users did not update their phones in time. After the app expired, they found it unusable and downloaded the new version, but the newly downloaded app also crashes on launch. Restarting the phone does not resolve the issue, and this primarily occurs on iOS 18.3.2. What could be the cause of this problem, and how should we address it?
Topic:
Business & Education
SubTopic:
General
The MDM was installed correctly and other commands are working fine. I have tried to send the InstallProfile with custom configuration to the device, but it was displayed as not signed. How to sign the payload for InstallProfile command and where it should be included in the payload / command?
The payload I sent to a mac with MDM installed:
<?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>Payload</key>
<data>
BASE64_HERE
</data>
<key>RequestType</key>
<string>InstallProfile</string>
</dict>
</plist>
Decoded base64 from the payload above was:
<?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>PayloadContent</key>
<array>
<dict>
<key>PayloadContent</key>
<dict>
<key>com.example.myapp</key>
<dict>
<key>test_key</key>
<string>test_value</string>
</dict>
</dict>
<key>PayloadDisplayName</key>
<string>My App Configuration</string>
<key>PayloadIdentifier</key>
<string>com.org_name.mdm.profile.uq_id_here</string>
<key>PayloadType</key>
<string>com.apple.ManagedClient.preferences</string>
<key>PayloadUUID</key>
<string>UUID4 HERE</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>App Configuration Profile</string>
<key>PayloadIdentifier</key>
<string>com.example.myapp.config</string>
<key>PayloadOrganization</key>
<string>ORG NAME</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>ANOTHER UUID4 HERE</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
System logs from Device:
[*] Processing server request: InstallProfile for: <Device>
[ERROR] System keychain reported it is unavailable but will proceed as if it is.
[*] === CPF_InstallProfile === com.example.myapp.config (user: <Computer>) (source: 'MDM')
[*] >>>>> Sending HTTP request (PUT) [Acknowledged(InstallProfile)
[*] <<<<< Received HTTP response (200) [Acknowledged(InstallProfile)
[*] Processing server request: ProfileList for: <Device>
[*] >>>>> Sending HTTP request (PUT) [Acknowledged(ProfileList)
[*] <<<<< Received HTTP response (200) [Acknowledged(ProfileList)
Also the ProfileList didn't include the installed profile. Is it because it was unsigned? How it should be signed?
Topic:
Business & Education
SubTopic:
General
Tags:
Enterprise
macOS
Business and Enterprise
Device Management
My company signed the application with enterprise certificate, the Provisioning Profile expired on March 20, 2025. Some iPhones didn't update the application before the expiration.
We have update the Provisioning Profile and repackaged application. However, these iPhones still can't use the application after reinstalling the new ipa. After opening the application, the screen is blank and then flashes back without any error prompt.
Restarting iPhone didn't help.
I found that "search" endpoint is recently added to api.ent.apple.com : https://developer.apple.com/documentation/devicemanagement/get-catalog-search-results
However it seems we cannot find custom apps using this API even with sToken.
Is it not suppoted yet?
Thank you
We install two in-house apps.
The first app is installed using the standard in-house method, while the second app is installed via MDM commands.
Both apps share the same Team ID and use Keychain sharing to exchange data.
However, when the MDM profile is deleted and the second app is removed, the first app intermittently encounters issues and does not function properly.
However, when the MDM mobileconfig is reinstalled and the second app is installed again, the first app that was not functioning starts working properly.
We have thoroughly reviewed the logs but have not been able to find a solution.
Your assistance would be greatly appreciated.
We have extracted and attached the device logs that were generated during the error occurrence.
log.log
Hi everyone,
I’m working as an IT engineer in the cruise industry and need to troubleshoot passenger complaints about Apple’s new RCS messaging feature (introduced with iOS 18). Could someone help confirm which domains and ports iPhones use when they send RCS messages? For the fortigate and palo alto firewalls I need specifics: domains (or subdomains) that need whitelisting and the ports involved.
Any official or community-sourced info would be super helpful—thanks in advance!
Topic:
Business & Education
SubTopic:
Device Management
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
We are using management properties in DDM to assign configurations and assets to a particular device, and one of those properties should be updated by a business app on the device.
For example, if the business application is not launched every 30 days, then a predicate should evaluate to false and the device put into single app mode to force the application to run.
If, however, the app is launched any time in the 30 days, then the counter should be reset. Essentially trying to enforce that users in the field cannot work offline for extended periods of time without getting the latest dataset from the company.
The single app mode part is very clear and the predicate to assign the configuration based on the date in the management property seems logical.
However, the question is: Can a predicate be built upon data that is updated by the custom MDM app? ie: If the app is launched on the device without connectivity, can a property be updated that the DDM predicate system can access that can be used as an input property? such as "last launch time" or "last check-in" of the custom app?
Alternately, could the custom MDM app read any of the management properties set via DDM? That way the user would know the value that the DDM configuration for restricting the device.
My institution uses Blackboard and iPads to conduct assessments, and I’m trying to find some proctoring tools. Students conduct the assessments directly on Blackboard using either Safari or Chrome.
I know that Apple has a function that does EXACTLY what I’m looking for, but from what I understand, this function has to be made available by Safari or Chrome:
https://developer.apple.com/documentation/automaticassessmentconfiguration
I don’t know whether either of these two browsers have this function enabled, and whether it can be switched on and off for custom-made Blackboard assessments. Is this a possibility? Are there other options?
I know Blackboard offers built-in and third-party proctoring, but contacting them is difficult, and my company does not give me the appropriate authority to speak directly with Blackboard. So, I’m not able to find out about the feasibility, costs, etc. of this option.
Any help would be greatly appreciated.
Topic:
Business & Education
SubTopic:
Device Management