Hello folks,
I stumbled upon a weird CNContact serialization problem. I use the Contacts framework to update the AIM field, which is one of the instantMessageAddresses within a single Contact. Here is the simplified code I used:
func updateAIMFieldOn(contact: CNContact, aimValue: String) {
do {
guard let mutableContact = contact.mutableCopy() as? CNMutableContact else {
logger.error("[CM] Couldn't update contact with aim \(aimValue)")
return
}
var updatedAddresses = mutableContact.instantMessageAddresses
updatedAddresses.append(CNLabeledValue(label: "", value: CNInstantMessageAddress(username: aimValue, service: CNInstantMessageServiceAIM)))
mutableContact.instantMessageAddresses = updatedAddresses
let saveRequest = CNSaveRequest()
saveRequest.update(mutableContact)
try CNContactStore().execute(saveRequest)
logger.verbose("Contact's AIM updated successfully!")
} catch {
logger.error("Couldn't update contact")
}
}
And after serializing the contact to data, and then deserializing, the contact got two AIM fields with the same value:
X-AIM;type=pref:some:part:of_my_aim_value
IMPP;X-SERVICE-TYPE=AIM;type=pref:some:part:of_my_aim_value
Why does it work in this manner? Is it possible that ":" char causes that? Format of my aim username is {some:part:of_my_aim_value}. I didn't find any information in the docs.
Thanks!
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
I'm using Apple's MDM protocol InstalledApplicationListCommand to get information about installed apps.
From iOS/iPadOS 26, the app information obtained by InstalledApplicationListCommand includes information on all apps including system apps (apps that come standard with iOS/iPadOS).
https://developer.apple.com/documentation/devicemanagement/installed-application-list-command
I want iOS/iPadOS26 to get the same information as the app information I get from the previous iOS/iPadOS, and I want to exclude system apps from the app information I get with the InstalledApplicationListCommand.
As a way to exclude system apps, you can use the app ID
I'm thinking of a way to exclude anything that starts with "com.apple" (the Identifier key value of the InstalledApplicationListResponse.InstalledApplicationListItem object).
As a way to exclude system apps, please tell us whether the above method is appropriate and whether there will be any problems in the future.
Topic:
Business & Education
SubTopic:
Device Management
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?
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
Hi There
Our app is used in the hospital field and receives remote APNS via the Notification Service Extension.
We found a scenario where screen is on, our app is in background, if a "Critical" notification is displayed as a banner at the top of the screen, subsequent normal notifications will be suppressed and no sound will play. Only after the user swipes away the critical notification will the normal notification appear and play a sound.
is this as expected? I could not find any document on such case from Apple.
Thanks.
Topic:
Business & Education
SubTopic:
General
The result Plist for the InstalledApplicationList MDM command is reporting duplicate Application identifiers. Sometimes with different version, other times with the same version.
The device is MacOS 15.5, Enrolled via ABM (Supervised). Here are a couple samples from the returned list.
Duplicate app:
<key>BundleSize</key>
<integer>398051</integer>
<key>Identifier</key>
<string>com.adobe.Acrobat.NativeMessagingHost</string>
<key>Installing</key>
<false/>
<key>Name</key>
<string>NativeMessagingHost</string>
<key>ShortVersion</key>
<string>5.0</string>
<key>Version</key>
<string>5.0</string>
</dict>
<dict>
<key>BundleSize</key>
<integer>398051</integer>
<key>Identifier</key>
<string>com.adobe.Acrobat.NativeMessagingHost</string>
<key>Installing</key>
<false/>
<key>Name</key>
<string>NativeMessagingHost</string>
<key>ShortVersion</key>
<string>5.0</string>
<key>Version</key>
<string>5.0</string>
</dict>
Different Version:
<key>BundleSize</key>
<integer>4197200</integer>
<key>Identifier</key>
<string>com.adobe.adobe_licutil</string>
<key>Installing</key>
<false/>
<key>Name</key>
<string>adobe_licutil</string>
<key>ShortVersion</key>
<string>11.0.0.39</string>
<key>Version</key>
<string>11.0.0.39</string>
</dict>
<dict>
<key>BundleSize</key>
<integer>4443177</integer>
<key>Identifier</key>
<string>com.adobe.AcroLicApp</string>
<key>Installing</key>
<false/>
<key>Name</key>
<string>AcroLicApp</string>
<key>ShortVersion</key>
<string>25.001.20432</string>
<key>Version</key>
<string>25.001.20432</string>
</dict>
<dict>
<key>BundleSize</key>
<integer>7380980</integer>
<key>Identifier</key>
<string>com.adobe.adobe_licutil</string>
<key>Installing</key>
<false/>
<key>Name</key>
<string>adobe_licutil</string>
<key>ShortVersion</key>
<string>10.0.0.274</string>
<key>Version</key>
<string>10.0.0.274</string>
</dict>
Topic:
Business & Education
SubTopic:
Device Management
Tags:
macOS
Apple Business Manager
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
Apple provides a function to create TTS voice as a file in TTS.
(AVSpeechUtterance/AVSpeechSynthesizer)
Or, if the user records the video of TTS playback and uses that video
I wonder what the scope of use is if I use this TTS voice to make YouTube, TikTok, or commercial videos.
Is it impossible to use it commercially at all?
Can I use it commercially with the source indicated?
Can I use it commercially without a separate source indication?
Is there a difference in commercial use license between Siri voices and regular TTS voices?
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
May I know the checking mechanism for the ios Provisioning profile? Is my Apple app distributed by MDM inside the organisation? If the Provisioning profile is expired , what is the behaviour when user run the App and how to perform the checking mechanism , is it performed at user client side device or Apple server via online access.
I'm the IT Admin in my company. We use Microsoft Intune, which is a Mobile Device Management tool, to manage our devices and apps. I created an app protection policy, restricting the data can only be shared between the allowed apps. For example, if our user want to copy the content in Outlook for iOS to WeChat or personal memo, the action will be blocked.
However, may be it's too strict, here is the scenario that we need to hadle: A user selected the content in the Outlook for iOS mail, and wanted to use the "translate" function to do translation. Before the app protection policy was deployed, he can do the translation successfully. And now, it's blocked.
Therefore, we need to find a way to exempt the app "Translate" so that users can do the translation successfully. We put the value "com.apple.Translate"(this is a package ID listed in the official document of Apple) to the exemption, but it's not working.
May I know what is the correct "value" for the iOS native Translate APP? I need to put this value to our app protection policy to exempt Translate app.
Thank you so much.
Is there a way to check if DDM(Declarative Device Management) is enabled on a device?
We have a WebContentFilter that has an AllowList with a couple of domains and a DenyList that includes www.apple.com. This works on iOS18.x but doesn't work in iOS26 as www.apple.com can be reached.
https://support.apple.com/en-gb/guide/deployment/depc77c9609/web
Indicates that .apple.com is always accessible but evidence seems to indicate this wasn't the case pre iOS26. An older version of this page
https://web.archive.org/web/20220427202204/https://support.apple.com/en-gb/guide/deployment/depc77c9609/web has no mention of .apple.com although field names are also different.
Has this change come about due to the filtering changes introduced in iOS26 and is there any way we can still block .apple.com going forward. Would a content plugin be an options ?
Topic:
Business & Education
SubTopic:
Device Management
Hi there,
We’re testing Declarative Device Management (DDM) for VPP app management and followed the latest declaration template here:
https://github.com/apple/device-management/blob/release/declarative/declarations/configurations/app.managed.yaml
Our goal is to enable VPP auto-updates via the declaration. The payload we’re using looks like this:
"AppStoreID": "1231325957",
"InstallBehavior": "{\"Install\": \"Required\", \"License\": {\"Assignment\": \"Device\"}}",
"UpdateBehavior": "{\"AutomaticAppUpdates\": \"AlwaysOn\"}"
}
What we’re seeing
Device A (no Apple ID signed into App Store): User can manually update the VPP app with the above declaration in place. ( The same user cannot update the app if UpdateBehavior is not in the declaration payload.
Device B (Apple ID signed into App Store, and the same Apple ID doesn't have the above app purchased): User cannot manually update the same VPP app. The App Store shows the error seen when UpdateBehavior is absent:
“ cannot be updated because it was refunded or purchased with a different Apple Account.”
Also, in this case, the user has no way to purchase the (free) app by their own as the app shows as owned/managed by MDM server. We have to remove the declaration, let the user purchase the same app, then re-deploy the declaration to allow the user to click that "Update" button when a new version for that app is available.
Additionally, we’re unsure about the criteria/timing for automatic VPP app updates under DDM. After a new version became available, we waited several hours but the app did not auto-update.
Repro summary
App: VPP, device-assigned license
Declaration: AutomaticAppUpdates = AlwaysOn, install required
Device A: not signed into App Store → manual update allowed
Device B: signed into App Store → manual update blocked with “refunded/different account” error
Auto-update did not occur after waiting several hours post-release
Any guidance, confirmation of expected behavior, or tips on additional logging we should collect (e.g., specific App Store / MDM / DDM logs and subsystems) would be greatly appreciated. If this is a known issue or requires a Feedback Assistant report, we’re happy to file one.
Thanks,
Details:
Device: iPhone 12 Pro Max
System: iOS 26.1 beta 2
Issue Description:
When testing MDM device restriction capabilities on iOS 26.1 beta 2, I found that the allowCamera restriction does not work as expected.
Observed Behavior:
• On a BYOD device:
When allowCamera is set to false, the Camera and FaceTime apps disappear from the Home Screen, as expected.
However, third-party apps (such as WeChat) can still access the camera and take photos.
• On earlier versions (e.g. iOS 26.0.1):
Setting allowCamera to false correctly blocks all apps, including third-party apps, from accessing the camera.
Initially, I assumed Apple might have changed this restriction behavior so that allowCamera only applies to supervised devices.
However, after testing on supervised devices, I found that even there, when allowCamera is set to false, the Camera and FaceTime apps are hidden, but third-party apps can still use the camera.
This indicates that the restriction is not functioning correctly in iOS 26.1 beta 2.
Expectation:
When allowCamera is set to false, all camera access — including third-party apps — should be blocked.
Request:
Could someone from Apple’s development or MDM team confirm whether this is an expected behavior change or a potential bug in iOS 26.1 beta 2?
Topic:
Business & Education
SubTopic:
Device Management
There is a longstanding restriction payload for supervised iOS devices that disables "Erase All Content and Settings." We have been experimenting with supervised watches paired with supervised phones that have that payload applied, and yet "Erase All Content and Settings" remains available on the watch. Is this:
– a) An error with our payload? Should we be sending something else?
– b) A bug in watchOS supervision?
– c) A deliberate design choice? If so, what is the rationale for preventing organizations from maintaining this very basic level of control over devices they may be configuring and dispatching into the field?
Topic:
Business & Education
SubTopic:
Device Management
Tags:
watchOS
Apple Business Manager
Device Management
I came across this tool that enables supervised mode on iOS without resetting the data. it's essentially a macOS with a unix executable file underneath. a quick guide of how it works is here
https://www.techlockdown.com/guides/enable-supervised-mode-iphone
I would appreciate any guidance on how to recreate this, as this is behind a paywall, and would like to offer something similar for free to people who want to restrict their families devices.
Topic:
Business & Education
SubTopic:
Device Management
Platform SSO not working on macos devices for zscaler application other app like safari / chrome working well.
Need help from apple expert on the same.
Environment :
IDP : Entra ID
MDM : Omnissa Workspace one UEM
platform : macOS
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
It seems like there are some "mixed messages" out there about what should be in OID 1.2.840.113635.100.8.11.1 in the attestation cert.
Is it just a SHA256 hash of the nonce issued by the ACME server?
The MDM profile yaml says:
"In the attestation certificate the value of the freshness code OID matches the nonce specified by the ACME server via the ACME protocol."
I'm hoping the difficulty we're seeing is down to the certificate being created once (and not again for 7 days). Otherwise, we're not decoding/understanding the OID's contents properly.
Thanks.