Explore the intersection of business and app development. Discuss topics like device management, education, and resources for aspiring app developers.

All subtopics

Post

Replies

Boosts

Views

Activity

About the Declarative Device Management Activation Update
Hi everyone, We are currently integrating Apple DDM into our existing MDM system and encountered an issue where an update to a declaration failed with the message: "Activation xxxxx is missing configurations." While we know how to fix the issue, I'm quite concerned about potential impacts. An incorrect activation could deactivate the current one, leading to the automatic removal of all profiles and apps. Given that unexpected server errors can occasionally occur, this could significantly impact end-users if their apps are suddenly removed. I'm looking for a way to prevent activations from "failing to update then lost everything" or a safer method to deploy updated version of activations, especially given the potential for unexpected server errors or logic bugs. This could significantly affect end-users if their apps suddenly disappear. If anyone has any insights, thoughts, or best practices to share regarding activation updates, I would greatly appreciate your input. Leo Chan
2
0
331
Oct ’24
SMAppService fails to register agent with MDM
btm_launchagent.txt I have a menu bar app which should be triggered to start when a system extension is successfully installed. The menu bar app is configured as a agent which should be started by SMAppServer. SMAppService register/unregister the agent successfully when the program is running locally. When doing the program installation through JamfNow, which is a MDM system, it fails with following error. I think the problem here is that the backgroundtaskmanagementd trys to register the agent with an invalid uid=-1 or uid: 4294967295(0xFFFFFFFF). 2024-10-02 10:45:33.100537+0200 0x156d4 Activity 0x1b927 88 0 smd: (BackgroundTaskManagement) BTMManager.getEffectiveDisposition 2024-10-02 10:45:33.103478+0200 0x156dd Default 0x1b927 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] effectiveItemDisposition: appURL=file:///Applications/Company%20Agent.app/, type=agent, url=Contents/Library/LaunchAgents/com.Company.agent.notifier.plist -- file:///, config={ BTMConfigArguments = ( ); BTMConfigBundleIdentifiers = ( ); BTMConfigExecutablePath = "Contents/Resources/CompanyNotifier.app/Contents/MacOS/CompanyNotifier"; BTMConfigLabel = "com.Company.agent.notifier"; } 2024-10-02 10:45:33.103544+0200 0x156dd Info 0x1b927 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] effectiveItemDisposition: result=[disabled, allowed, visible, not notified] 2024-10-02 10:45:33.105120+0200 0x156d4 Default 0x1b927 88 0 smd: (BackgroundTaskManagement) [com.apple.backgroundtaskmanagement:main] getEffectiveDisposition: disposition=[disabled, allowed, visible, not notified], have LWCR=true 2024-10-02 10:45:33.105181+0200 0x156d4 Default 0x0 88 0 smd: [com.apple.xpc.smd:all] Found status: 0 for <private> 2024-10-02 10:45:33.240190+0200 0x154da Default 0x0 88 0 smd: [com.apple.xpc.smd:SMAppServiceFactory] Setting up BundleProgram keys for <private> 2024-10-02 10:45:33.240250+0200 0x154da Default 0x0 88 0 smd: [com.apple.xpc.smd:SMAppServiceFactory] Setting up BundleProgram keys for <private> 2024-10-02 10:45:33.240388+0200 0x154da Activity 0x1b92a 88 0 smd: (BackgroundTaskManagement) BTMManager.registerLaunchItemWithAuditToken 2024-10-02 10:45:33.243990+0200 0x156dd Default 0x1b92a 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] registerLaunchItem: pid=3626, uid=-1, type=agent, parentURL=<private>, url=<private>, config=<private> 2024-10-02 10:45:33.244917+0200 0x156dd Default 0x1b92a 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] registerLaunchItem: found existing item: uuid=AC0DBC9B-7A16-443E-ABFC-05DF0F534C08, name=CompanyNotifier, type=managed agent, disposition=[disabled, allowed, visible, notified], identifier=com.Company.agent.notifier, url=Contents/Library/LaunchAgents/com.Company.agent.notifier.plist -- file:/// 2024-10-02 10:45:33.245238+0200 0x156dd Debug 0x1b92a 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] BTMStore: save scheduled. 2024-10-02 10:45:33.245281+0200 0x156dd Debug 0x1b92a 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] RecordSet notification scheduled for uid -1 .... 2024-10-02 10:45:33.252358+0200 0x154da Error 0x0 88 0 smd: [com.apple.xpc.smd:SMAppService] Unable to submit job: <private> error: Error Domain=OSLaunchdErrorDomain Code=112 UserInfo={NSLocalizedFailureReason=<private>} 2024-10-02 10:45:33.252707+0200 0x156d4 Default 0x1b92a 88 0 smd: [com.apple.xpc.smd:all] Update request for identifier: <private> uid: 4294967295 2024-10-02 10:45:33.253190+0200 0x156dd Default 0x1b92a 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] getItemWithIdentifier: identifier=com.Company.agent.notifier, uid=-1 2024-10-02 10:45:33.253759+0200 0x156d4 Error 0x1b92a 88 0 smd: [com.apple.xpc.smd:btm] Error getting BTMItem with Identifier: <private> uid: 4294967295 error: (null) 2024-10-02 10:45:33.253803+0200 0x156d4 Error 0x1b92a 88 0 smd: [com.apple.xpc.smd:all] Unable to find BTMItem for <private> in 4294967295 2024-10-02 10:45:33.253835+0200 0x156d4 Error 0x1b92a 88 0 smd: [com.apple.xpc.smd:all] Update operation returned error: 3, but no reply expected so error will be silent 2024-10-02 10:45:33.661537+0200 0x156dd Debug 0x0 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] sending notification for uid -1, type 131080 2024-10-02 10:45:33.665159+0200 0x154fa Info 0x1b853 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] fetchSFLItemsMatching: type=managed user item app 2024-10-02 10:45:33.665374+0200 0x154fa Activity 0x15dd3 282 0 backgroundtaskmanagementd: (BackgroundTaskManagement) BTMManager.userDataDidChange 2024-10-02 10:45:33.666041+0200 0x154da Activity 0x1b92d 88 0 smd: (BackgroundTaskManagement) BTMManager.userDataDidChange 2024-10-02 10:45:33.666651+0200 0x154fa Debug 0x15dd3 282 0 backgroundtaskmanagementd: (BackgroundTaskManagement) [com.apple.backgroundtaskmanagement:main] -[BTMManager handleUserDataDidChangeNotification:]: uid=-1, type=131080 2024-10-02 10:45:33.666085+0200 0x154da Debug 0x1b92d 88 0 smd: (BackgroundTaskManagement) [com.apple.backgroundtaskmanagement:main] -[BTMManager handleUserDataDidChangeNotification:]: uid=-1, type=131080 2024-10-02 10:45:36.218160+0200 0x154fa Debug 0x0 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] -[BTMStore handleWriteTimer] entered 2024-10-02 10:45:36.218254+0200 0x154fa Debug 0x0 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] -[BTMStore _save] entered 2024-10-02 10:45:36.224738+0200 0x154fa Default 0x0 282 0 backgroundtaskmanagementd: [com.apple.backgroundtaskmanagement:main] BTMStore: store saved to /var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v9.btm Could it be a problem from the MDM system JamfNow or somewhere else? The whole logs is as attached. Thanks!
5
0
593
Oct ’24
Certain profiles can't be removed via Apple Configurator
I currently have a bunch of profiles that cannot be removed whatsoever. iOS 18.0 (22A3354), Apple Configurator Version 2.17 (9A15) (happens in the stable configurator version, too) On trying to remove the profiles via Apple Configurator, I get the error message The profile “[profile name]” does not have the expected certificate for removal. [DMCInstallationErrorDomain – 0xFA8 (4008)] The problem with that is, The profile was installed a day ago using the exact same MacBook that I now try to remove it. Nothing has changed. The profile was signed, but it's signed with the same Supervision Identity that I now still have in Apple Configurator. The SHA256 fingerprint I see inside iOS matches the one I see on macOS in the Configurator in the "Show Supervision Identity..." section. So there should be absolutely no reason why the profile removal fails. I'm not entirely sure if this is relevant, but the affected profile's PayloadIdentifier has an at-sign in it. The docs say this is supposed to be A reverse-DNS style identifier (com.example.myprofile, for example) that identifies the profile so an at-sign might not be valid - but the UI in the Configurator does not have an issue with it. The only way to get rid of these profiles appears to be a full wipe, which is what I'll do soon. If there is any information I can provide before the wipe (or a better channel to report this on), I'm happy to.
0
0
320
Sep ’24
iOS VPN kill switch or force VPN
I'm interesting to use network (and internet too) access on iPhone only through pre-configured (by corporate profile) VPN connection. If the VPN connection is unavailable for some reason then network must to be unaccessable. Which ways I have to solve my problem? I need to use some 3rd party software or it can be solved by MDM Profile? Best regards, Grigoriy.
0
0
288
Sep ’24
Managed Apple ID - Testflight not useable
Hi, I run a midsize business. Apple recommends for company owned devices and for other reasons to use Apple Business managed Apple IDs for the employees. After that, you have to use a MDM System for e.g. deploying apps and licenses. Testflight is an app that can be deployed too. But....Testflight can not more than to say "Hello" on a managed device. The use of Testflight and to test our developed apps is not possible with a managed ID. Can anyone explain to me this thinking or what is recommended than. Setting up a private Apple ID for that purpose...which on the other hand, Apple do not want or does not recommend.
1
1
524
Sep ’24
mobileconfig: OnDemandRules URLStringProbe doesn’t work in DNSSettings for iOS 18
Opening a fresh post as the other seem old/abandoned. I’m trying to add a fail-safe URLprobe to DNS setting profile (DNS over http) for the case that the iPhone/iPad connects to a wifi hotspot with captive portal without internet access. I use OnDemandRules to circumvent known problematic SSID names a specific (wildcard) domains - both working just fine and the requests are falling-back to a system resolver for such a requests. I’ve added a URLStringProbe which supposed to check availability of the internet. The probe should trigger on 200 OK response code and use the DNSSettings or fallback to a system resolver in the case of any other outcome, according to the documentation: A URL to probe. If this URL is successfully fetched (returning a 200 HTTP status code) without redirection, this rule matches. https://developer.apple.com/documentation/devicemanagement/dnssettings/ondemandruleselement https://developer.apple.com/business/documentation/Configuration-Profile-Reference.pdf Tested on iPhone 14 (iOS 18.1) but it doesn’t work. I’m using Clouflare https://1.1.1.1/index.html for the sake of simplicity and do some adjustment in IP/path for testing purposes using https to enforce TLS (to avoid hijack/MitM from a captive portal) using a direct IP (in this case Cloudflare) so I don't need to resolve a domain to execute the probe itself Anyway, I’ve changed the URL for a testing purposes to return either 404, redirect or timeout and in all cases cases the probe acts the same way like for 200 OK response. My expectation is that probe should test negative and go to next rule which is <key>Action</key> <string>Disconnect</string> and thus use the system resolver which will allow the system to detect a captive portal and display sign-in popup to the captive portal Any idea where might be the issue? Example 1 - with all rules <key>DNSSettings</key> <dict> <key>DNSProtocol</key> <string>HTTPS</string> <key>ServerURL</key> <string>https://dnsserverexample.com/v1/something/id/dns-query</string> <key>ServerAddresses</key> <array/> <key>SupplementalMatchDomains</key> <array/> </dict> <key>ProhibitDisablement</key> <true/> <key>OnDemandRules</key> <array> <dict> <key>Action</key> <string>Disconnect</string> <key>SSIDMatch</key> <array> <string>whitelistedSSID1</string> <string>whitelistedSSID1</string> </array> </dict> <dict> <key>Action</key> <string>EvaluateConnection</string> <key>ActionParameters</key> <array> <dict> <key>DomainAction</key> <string>NeverConnect</string> <key>Domains</key> <array> <string>*.whitelisteddomainexample.com</string> <string>*.whitelisteddomainexample2.com</string> </array> </dict> </array> </dict> <dict> <key>URLStringProbe</key> <string>https://1.1.1.1/index.html</string> <key>Action</key> <string>Connect</string> </dict> <dict> <key>Action</key> <string>Disconnect</string> </dict> </array> </dict> Example 2 - just URL probe and fail-open for iphone <key>DNSSettings</key> <dict> <key>DNSProtocol</key> <string>HTTPS</string> <key>ServerURL</key> <string>https://dnsserverexample.com/v1/something/id/dns-query</string> <key>ServerAddresses</key> <array/> <key>SupplementalMatchDomains</key> <array/> </dict> <key>ProhibitDisablement</key> <true/> <key>OnDemandRules</key> <array> <dict> <key>URLStringProbe</key> <string>https://1.1.1.1/index.html</string> <key>Action</key> <string>Connect</string> </dict> <dict> <key>Action</key> <string>Disconnect</string> </dict> </array> Also I’ve tried to debug similar issue in the past on MacOS. I’ve tried to add debug profiles NetworkDiagnostic.mobileconfig and mDNSResponder.mobileconfig but I don't see any logs related to OnDemandRules processing - any clue how to get some insight into the rules processing/evaluation?
0
0
268
Sep ’24
iOS 18 - Inquiry regarding issues related to camera control settings when using the MDM blocking function
I would like to contact about an issue with the iOS 18 update. With the release of the new iPhone 16, camera controls have been added. however, when using MDM, there is an issue where the camera control button settings change after blocking and unblocking the camera. 1. If the camera control button is originally set to 'Camera', when you block and unblock the camera through MDM, the button setting changes to 'None'. Shouldn't the camera control settings be maintained even after blocking and unblocking the camera? If this is a known issue, can you tell me when it will be fixed and updated?
1
1
409
Sep ’24
The app packaged with the enterprise certificate on the iPhone 16 crashes.
The original text is in Chinese, and below is the content translated using OpenAI. 問題描述: 因為一些因素,所以公司申請了兩個企業憑證,其中Entity Name一樣,但Team ID不一樣。現在發現iPhone16系列裝置的使用者,無法同時使用兩個憑證打包出來的APP,不是都會閃退就是其中一個會閃退。 重現問題的逐步說明: 測試的情況有兩種: 從iPhone16之前的裝置轉移資料到iPhone16,這兩個APP打開都會閃退 直接在iPhone16安裝這兩個APP,則第一個安裝的APP可以正常使用,第二個安裝的APP會閃退。如果想要切換能使用的APP,需要到 一般-VPN與裝置管理-INNOLUX CORPORATION ,點擊”刪除App”,然後更換安裝順序。 如果是舊裝置升級到iOS 18,則不會有該問題 期望的結果: 兩個APP都能正常使用 實際看到的結果: 如果是舊裝置移轉資料到iPhone16,則都會閃退:如果是直接在iPhone16安裝這兩個APP,則第一個安裝的APP可以正常使用,第二個安裝的APP會閃退。 OpenAI Translation: Problem Description: Due to certain factors, the company applied for two enterprise certificates, which have the same Entity Name but different Team IDs. It has now been discovered that users of the iPhone 16 series devices are unable to use apps packaged with both certificates simultaneously; either both apps crash or one of them crashes. Step-by-Step Reproduction of the Issue: There are two testing scenarios: Transferring data from a device prior to the iPhone 16 to the iPhone 16 results in both apps crashing upon opening. Directly installing both apps on the iPhone 16 allows the first installed app to function normally, while the second installed app crashes. To switch to the functioning app, one must go to Settings - VPN & Device Management - INNOLUX CORPORATION, click "Delete App," and then change the installation order. If an older device is upgraded to iOS 18, this issue does not occur. Expected Result: Both apps should function normally. Actual Observed Result: If data is transferred from an older device to the iPhone 16, both apps crash. If both apps are directly installed on the iPhone 16, the first installed app works normally while the second installed app crashes.
3
1
441
Sep ’24
Apps are not updated via MDM in sequoia
Hello team! I am trying to update an app via MDM on macOS sequoia. It has always worked fine for me since macOS 13. But now I get this error in the console when trying to update the app: Preflight canceled with coordinator: (null) error: Error Domain=ASDErrorDomain Code=663 "The app is running and we don't have the context to quit it, failing install." UserInfo={NSDebugDescription=The app is running and we don't have the context to quit it, failing install.} Always updated even if the app was open without problems before macOS 15. Regards
1
4
405
Sep ’24
Playground Learn to Code 2, World Creation
world.place(Portal(color: #colorLiteral(red: 1.0004385709762573, green: 0.22760793566703796, blue: 0.18670153617858887, alpha: 1.0)), at: Coordinate(column: 0, row: 0)) I get the following error from the above little piece of code : “There was a problem running this code. Check for problems …. Start over” WHY
0
0
222
Sep ’24
iOS 18 Bug -Certificate Trust Settings for Private Root Certificates Not Available
Importing an existing self- signed trusted root certificate no longer triggers option to trust cert in Settings / About / Certificate Trust Settings In iOS 18. Cert installed manually from internal website, as email attachment, and using profile in Configurator all produce same result. Same cert and processes work on iOS 16.7.10, iOS 17.6.1 and iPadOS 18.0 But not on iOS 18.0 nor beta iOS 18.1 beta5 on iPhone 16 Also tried regening a new test root on macOS Sonoma and installing using Configurator. No difference. It’s broken - I’ve reported it by Feedback - it’s a vital security flaw. Anyone else see this or have a workaround?
55
29
19k
Sep ’24
How to access DEP device data from Apple Business Manager via API
I am currently working on a Visual Basic .NET project and aim to integrate an internal application with the Apple Business Manager API to access DEP (Device Enrollment Program) device data. Specifically, I would like to request any guidance on the following aspects: Generating a Valid Access Token: I am aware that JSON tokens are required to interact with the API, but I am unsure of the correct procedure to create a valid token for accessing the Apple Business Manager data. How to set permissions for accessing DEP Device Data: What steps do I need to follow to obtain the necessary permissions to read DEP device data from Apple Buiness Manager? Are there specific configurations or approval processes that need to be completed within Apple Developer Account oder Apple Business Manager account (which both uses same Apple ID)? API Endpoints and Documentation to access Business Manager by API: Could you please point me to the relevant APIs and endpoints for interacting with the DEP data? Which web requests to send where? Any documentation that outlines the API structure fur Business Manager access and how and where to obtain access tokens for it. Thanks for any assistance as I stuck here since it is ma first project accessing Apple APIs.
0
1
336
Sep ’24
Missing iOS MDM Restriction for App Hiding/Locking
On the "What's new for enterprise in iOS 18" page here: https://support.apple.com/en-am/121158, one of the new features mentioned is: "On supervised devices, organizations can disable a user’s ability to hide and lock apps." Despite reviewing the developer documentation surrounding device management (https://developer.apple.com/documentation/devicemanagement), as well as going through the latest changes to schema definitions (https://github.com/apple/device-management), I have been unable to find a restriction that corresponds to this functionality. This is a feature that I'd like to implement, has anyone found any details about this restriction and what key may need to be inserted in the restrictions payload to use it?
1
0
518
Sep ’24
Apple Intelligence not available on Shared iPad
I am trying to use Apple Intelligence on a shared iPad. I cannot use Apple Intelligence even though I have registered my Apple Acount. Apple Intelligence does not appear in the device settings. Please tell me the following Can I use Apple Intelligence on my Shared iPad device? If so, is it an expected behavior that Apple Intelligence settings are not displayed on the Shared iPad device? The specifications of the devices used are as follows OS: iPadOS 18.1 beta3 Model: iPad Air-13inch(M2)
2
0
438
Sep ’24
Some of the new restriction settings available in iOS18 do not install settings on the device
I was checking the operation of items that are now available on devices with iOS 18 or later, but when I distribute to Shared iPad devices, the following 3 items are not installed on the device and cannot be controlled. allowiPhoneMirroring allowPersonalizedHandwritingResults allowWritingTools Please let us know the following. Are the above 3 items available on Shared iPad? If so, please tell us how to solve the problem that the items are not installed on the Shared iPad device and the control does not work. The specifications of the device used are as follows OS : iOS18.1 beta3 Model : iPad Air 13-inch(M2)
1
0
599
Sep ’24