Overview

Post

Replies

Boosts

Views

Activity

same passkey synced on 2 devices generate different prf outputs for the same salt
Steps to reproduce: register a passkey on device A authenticate on device A, using the prf extension and a constant salt. Note the prf output go to device B. wait for iCloud sync authenticate on device B using the prf extension and the same constant salt. Note the prf output The prf outputs are different. Note: Repeat the authentication on each device. The prf output is identical for a given device, which seems to point towards the inclusion of a device specific component in the prf derivation. In my scenario, I need the prf output to be the same regardless of the device since I use it as the recovery key for my app data. Could you confirm that this is the expected behavior or not? Thanks,
1
0
298
4w
Enterprise distribution profile not working for enterprise app
Our enterprise App (Loan Signature) is distributed to our corporate Ipads using JAMP. We use provisioning profile and certificate along with the IPA file to push the builds. Our current disstribution profile is expiring on 23d April 2026 and we wanted to update the Profile. So we created a new provisioning profile (Enterprise V9, along with a new ceritificate that ends on April 1st 2029). The enterprise provisioning profile is created in the same way as the old one which is called Enterprise V8. However when we use JAMP to upload the certificate and our current production version of app, it is not working. The app would not load and it would complain that the app is not available. I was told by the JAMF administrators that the profile could be wrong and I have no way to find out. Any help in this regard will really be helpful.
1
0
507
4w
What is going on with the developer program
Ive paid the 99$ fee almost 6 days ago while it said 48h and i’ll get the progra.. well i haven’t recived nothing, I’ve contacted apple support nearly 5 times, Guess what? No response. ive called their support “uhm sorry im not working in the development team sent us an email“ lmao tried yall are ignoring ur clients which is disappointing.. any ideas of what can i do next to GET access to my account which ive paid for?
3
1
131
4w
Different app behavior when running on device from Xcode
I have an app I am working on that makes a REST call, updates the UI with the info, and sends a notification. When I run Build and Run my app from Xcode using my iPhone as the destination, it works exactly as I want it to - my REST calls and notifications continue to work when the app is in the background. However, when I run my app that has been installed on my iPhone from the Xcode build/run directly (without Xcode in the picture), it does NOT behave correctly and only works when my app is in the foreground. What am I missing?
6
0
438
4w
DeviceActivityMonitor extension rejected by App Store Connect validator — NSExtensionPointIdentifier "com.apple.deviceactivity.monitor" invalid (IrisAPI -19241)
Hi everyone, I'm building an iOS app that uses a DeviceActivityMonitor app extension as part of the Screen Time / Family Controls API. Every time I try to upload my IPA to App Store Connect, the validation fails with this error: "Invalid Info.plist value. The value of the NSExtensionPointIdentifier key, com.apple.deviceactivity.monitor, in the Info.plist of 'Alexandria.app/PlugIns/AlexandriaActivityMonitor.appex' is invalid." Error Domain=IrisAPI Code=-19241, iris-code=STATE_ERROR.VALIDATION_ERROR What I have verified (everything looks correct): NSExtensionPointIdentifier = com.apple.deviceactivity.monitor NSExtensionPrincipalClass = AlexandriaActivityMonitor.AlexandriaActivityMonitorExtension (correctly resolved in the compiled binary, verified with plutil -p) The Swift class correctly subclasses DeviceActivityMonitor CFBundleShortVersionString matches the main app Both the main app and extension provisioning profiles explicitly contain com.apple.developer.family-controls = true (verified by inspecting embedded.mobileprovision inside the IPA) The binary code signature itself contains com.apple.developer.family-controls = true (verified with codesign -d --entitlements :-) Family Controls entitlement was requested and approved in the Developer Portal for both App IDs Tested with both Xcode 26.2 (iOS 26 SDK) and Xcode 16.4 (iOS 18 SDK) — same error in both cases The IPA is structurally correct. The error comes purely from Apple's server-side IrisAPI validator and does not correspond to anything I can identify or fix in the code or configuration. Has anyone successfully submitted an app with a DeviceActivityMonitor extension to App Store Connect recently? Is there a backend approval requirement for com.apple.deviceactivity.monitor beyond the standard Family Controls entitlement approval? Could this be a known validator bug for this specific extension type? Any help appreciated.
6
1
545
4w
Setting up video and image capture pipeline creates internal errors in AVFoundation.
I have created code for iOS that allows me to start and stop video acquisition from a proprietary USB camera using AVFoundation's AVCaptureSession and AVCaptureDevice APIs. There is a start and stop method. The start method takes an argument to specify one of two formats that I use for my custom camera application. I can start the session and switch between formats all day without any errors. However, if I start and then stop the camera three times in a row, on the third invocation of start, I get errors in the console output and the CMSampleBuffers stop flowing to my callback. Additionally, once I get AVFoundation into this state, stoping the camera doesn't help. I have to kill the app and start over. Here are the errors. And below these, the code. I'm hoping someone who has experience with these errors or an engineer from Apple who knows the AVFoundation image capture pipeline code, can respond and tell me what I'm doing wrong. Thanks. <<<< FigCaptureSourceRemote >>>> Fig assert: "! storage->connectionDied" at bail (FigCaptureSourceRemote.m:235) - (err=0) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:558) - (err=-16453) <<<< FigCaptureSourceRemote >>>> Fig assert: "! storage->connectionDied" at bail (FigCaptureSourceRemote.m:235) - (err=0) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:253) - (err=-16453) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:269) - (err=-16453) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:511) - (err=-16453) Capture session error: The operation could not be completed Capture session error: The operation could not be completed func start(for deviceFormat: String) async throws -> AnyPublisher<CMSampleBuffer, Swift.Error> { func configureCaptureDevice(with deviceFormat: String) throws { guard let format = formatDict[deviceFormat] else { throw Error.captureFormatNotFound } captureSession.beginConfiguration() defer { captureSession.commitConfiguration() } try captureDevice.lockForConfiguration() captureDeviceFormat = deviceFormat captureDevice.activeFormat = format captureDevice.unlockForConfiguration() } return try await withCheckedThrowingContinuation { continuation in sessionQueue.async { [unowned self] in logger.debug("Start capture session for \(deviceFormat): \(String(describing: captureSession))") // If we were already steaming camera images from a different mode, terminate that stream. bufferPublisher?.send(completion: .finished) bufferPublisher = nil captureDeviceFormat = "" do { // Re-configure with the new format; should be harmless if called with the currently configured format. try configureCaptureDevice(with: deviceFormat) // Return a new stream publisher for this invocation. bufferPublisher = PassthroughSubject<CMSampleBuffer, Swift.Error>() // If we are not currently running, start the image capture pipeline. if captureSession.isRunning == false { captureSession.startRunning() } continuation.resume(returning: bufferPublisher!.eraseToAnyPublisher()) } catch { logger.fault("Failed to start camera: \(error.localizedDescription)") continuation.resume(throwing: error) } } } } func stop() async throws { try await withCheckedThrowingContinuation { continuation in sessionQueue.async { [unowned self] in logger.debug("Stop capture session: \(String(describing: captureSession))") // The following invocation is synchronous and takes time to execute; // looks like a stall but you can ignore it as the MainActor is not blocked. captureSession.stopRunning() // Terminate the stream and reset our state. bufferPublisher?.send(completion: .finished) bufferPublisher = nil captureDeviceFormat = "" // Signal the caller that we are done here. continuation.resume() } } }
0
0
235
4w
App Store Connect rejects com.apple.deviceactivity.monitor for Device Activity Monitor Extension
I’m submitting an iOS app that uses Family Controls / DeviceActivity APIs, and App Store Connect rejects the archive during distribution with this error: Invalid Info.plist value. The value of the NSExtensionPointIdentifier key, com.apple.deviceactivity.monitor, in the Info.plist of “activity-tracking.app/PlugIns/ScheduleMonitorExtension.appex” is invalid. What I’ve already verified: Family Controls capability is approved for our team App IDs and distribution provisioning profiles were regenerated The source Info.plist for the extension contains: NSExtensionPointIdentifier = com.apple.deviceactivity.monitor The archived .appex inside the .xcarchive also contains the same exact value Signed entitlements in the archived .appex include: com.apple.developer.family-controls = true app group entitlement Main app archive is signed correctly as well Latest stable Xcode used This makes it look like the archive is configured correctly, but App Store Connect still rejects the Device Activity Monitor extension point itself. Has anyone successfully distributed a third-party app containing a Device Activity Monitor Extension to App Store Connect recently? Is there an additional Apple-side approval required beyond visible Family Controls entitlement approval?
1
0
174
4w
4.3a
Hello, The issues we previously identified still need your attention. If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know. Review Environment Submission ID: f14dec0a-1269-438e-b483-6d806b3d17bf Review date: April 13, 2026 Review Device: iPhone 17 Pro Max Version reviewed: 1.0 Guideline 4.3(a) - Design - Spam Issue Description We noticed the app shares a similar binary, metadata, and/or concept as other apps you already submitted to the App Store, with only minor differences. Submitting similar or repackaged apps is a form of spam that creates clutter and makes it difficult for users to discover new apps. Next Steps Since we do not accept spam apps on the App Store, we encourage you to review the app concept and submit a unique app with distinct content and functionality. Resources Some factors that contribute to a spam rejection may include: Submitting an app with the same source code or assets as other apps already submitted to the App Store Creating and submitting multiple similar apps using a repackaged app template Purchasing an app template with problematic code from a third party Submitting several similar apps across multiple accounts Learn more about our requirements to prevent spam in guideline 4.3. Support Reply to this message in your preferred language if you need assistance. If you need additional support, use the Contact Us module. Consult with fellow developers and Apple engineers on the Apple Developer Forums. Provide feedback on this message and your review experience by completing a short survey. I am not able to get through this. Can someone help?
1
0
114
4w
Lookify: AI Virtual Try-On — Stuck in "Waiting for Review" | 2 Months
Hello Apple Developer Community and App Review Team, I'm writing to seek guidance regarding my app Lookify: AI Virtual Try-On (App ID: 6757718224), which has been caught in an ongoing review cycle since February 15, 2026 — nearly two months ago. Submission History: Date Version Status Feb 15 iOS 1.1.0 Removed Feb 19 iOS 1.1.0 Removed Feb 21 iOS 1.1.0 Removed Apr 3 (2:21 AM) iOS 1.1.0 Removed Apr 3 (1:17 PM) iOS 1.1.0 Removed Apr 6 (current) iOS 1.1.0 Waiting for Review Each submission was either self-removed after extended waiting periods with no reviewer feedback, or removed to address potential issues — only to re-enter the queue with the same outcome. The current submission has now been in "Waiting for Review" status since April 6 with no activity, no messages, and no indication of progress. What I've done to comply: Updated the Privacy Policy to be fully GDPR and KVKK compliant Provided clear demo account credentials and usage instructions for the AI try-on feature Ensured all metadata, screenshots, and descriptions accurately reflect the app's functionality Reviewed Apple's App Review Guidelines thoroughly before each resubmission I understand that AI-powered apps — especially those involving visual try-on technology — may require closer scrutiny, and I fully respect that process. I'm not asking to bypass any review step. I simply ask for transparency: if there is an issue with the app, a rejection with specific feedback would allow me to address it immediately. This app represents months of development work. As a small independent developer, prolonged uncertainty without communication makes it very difficult to plan or improve. My request: Could anyone from the App Review team or community provide insight into: Whether there is an active flag or concern on this submission What the expected timeline might be for accounts with this submission history Whether an Expedited Review would be appropriate given this timeline I have also submitted a contact request through the official App Review contact form. I am fully committed to making any necessary changes — I just need to know what they are. Thank you sincerely for your time and assistance. Mustafa Bilgiç Developer, PlayTools
2
1
232
4w
Ventura Hack for FireWire Core Audio Support on Supported MacBook Pro and others...
Hi all,  Apple dropping on-going development for FireWire devices that were supported with the Core Audio driver standard is a catastrophe for a lot of struggling musicians who need to both keep up to date on security updates that come with new OS releases, and continue to utilise their hard earned investments in very expensive and still pristine audio devices that have been reduced to e-waste by Apple's seemingly tone-deaf ignorance in the cries for on-going support.  I have one of said audio devices, and I'd like to keep using it while keeping my 2019 Intel Mac Book Pro up to date with the latest security updates and OS features.  Probably not the first time you gurus have had someone make the logical leap leading to a request for something like this, but I was wondering if it might be somehow possible of shoe-horning the code used in previous versions of Mac OS that allowed the Mac to speak with the audio features of such devices to run inside the Ventura version of the OS.  Would it possible? Would it involve a lot of work? I don't think I'd be the only person willing to pay for a third party application or utility that restored this functionality. There has to be 100's of thousands of people who would be happy to spare some cash to stop their multi-thousand dollar investment in gear to be so thoughtlessly resigned to the scrap heap.  Any comments or layman-friendly explanations as to why this couldn’t happen would be gratefully received!  Thanks,  em
64
10
36k
4w
tvOS: Background audio + local caching works on Simulator but stops on real Apple TV device
Description: I’m developing a tvOS app using SwiftUI where we play background audio (music) in the Welcome screen, with support for offline playback via local caching. 🔹 Feature Overview App fetches audio metadata from API Starts streaming audio (HLS .m3u8) immediately In parallel, downloads the raw audio file (.mp3) Once download completes: Switches playback from streaming → local file On next launch (offline mode), app plays audio from local storage 🔹 Issue This flow works perfectly on the Simulator, but on a real Apple TV device: Audio plays for a few seconds (2–5 sec) and then stops Especially after switching from streaming → local file No explicit AVPlayer error is logged Playback sometimes stops after UI updates or periodic API refresh 🔹 Implementation Details Using AVPlayer with AVPlayerItem Background audio controlled via a shared manager (singleton) Files stored locally using FileManager (currently using .cachesDirectory) Switching playback using: player.replaceCurrentItem(with: AVPlayerItem(url: localURL)) player.play() 🔹 Observations Works reliably on Simulator On device: Playback stops silently Seems related to lifecycle, buffering, or file access No issues when continuously streaming (without switching to local) 🔹 Questions Is there any limitation or known issue with AVPlayer when switching from streaming (HLS) to local file playback on tvOS? Are there specific requirements for playing locally cached media files on tvOS (e.g., file location, permissions, or sandbox behavior)? What is the recommended storage location and size limit for cached media files on tvOS? We understand tvOS has limited persistent storage Is .cachesDirectory the correct approach for this use case? Are there known differences in AVPlayer behavior between Simulator and real Apple TV devices (especially regarding buffering or lifecycle)? What is the recommended approach for implementing offline background audio on tvOS apps? 🔹 Goal We want to implement a reliable system where: Audio streams initially Seamlessly switches to local file after download Continues playing without interruption Supports offline playback on subsequent launches Any guidance or best practices would be greatly appreciated. Thank you!
1
0
238
4w
StoreKit access in keyboard extensions
Hello Apple team, We would like to access the user's available purchases from the keyboard extension. Making purchases directly from the keyboard is a great benefit, but we assume it is intentionally disabled to prevent abuse or fraudulent purchase attempts. What we care about the most is determining if the user has an item that contains a discount or a free trial to personalize messaging when we suggest the user go to the app and make a purchase. We hope you'd consider revising your policy around StoreKit usage.
1
0
216
4w
LLDB RPC server crashes when running top-level async code in Playground files
When running top-level async code in Swift Playgrounds, the LLDB RPC server crashes. For example, when running the following code from Concurrency section of The Swift Programming Language book: func fetchUserID(from server: String) async -> Int { if server == "primary" { return 97 } return 501 } let userIDs = await withTaskGroup(of: Int.self) { group in for server in ["primary", "secondary", "development"] { group.addTask { return await fetchUserID(from: server) } } var results: [Int] = [] for await result in group { results.append(result) } return results } print(userIDs) Xcode reports that the LLDB RPC server has crashed. The Swift Playground app reports “There was a problem running this playground.” However, in the case of the Swift Playground app, results are populated as expected. For example, the console shows “[97, 501, 501]”. Xcode does not print any results in the console. Tested with Xcode 26.4 (17E192) and Swift Playground Version 4.7 (2088). Wrapping the async code in a Task {} resolves the issue. Running this code in a standalone Swift file produces the expected result without an error. FB22416465 From the analytics report, attached in the feedback report, but in case it helps others identify the same issue in their crashes: Triggered by Thread: 26 RPC packet thread for client tid 013af238 (20640312) Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000000005a8 Exception Codes: 0x0000000000000001, 0x00000000000005a8 Termination Reason: Namespace SIGNAL, Code 11, Segmentation fault: 11 Terminating Process: exc handler [64943] VM Region Info: 0x5a8 is not in any region. Bytes before following region: 4296211032 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START ---> __TEXT 100130000-1003b8000 [ 2592K] r-x/r-x SM=COW /Applications/Xcode-26.4.0-Release.Candidate.app/Contents/SharedFrameworks/LLDBRPC.framework/Versions/A/Resources/lldb-rpc-server
1
0
262
4w
Developer ID Installer cert not usable for pkg signing (no Code Signing / 0 identities)
Hello! We built a macOS .pkg using pkgbuild (contains a DMG + postinstall bash script). The pkg works locally on the build machine but fails on other devices manually / via MDM unless signed. We tried signing with a Developer ID Installer certificate, but: security find-identity -p codesigning -v → 0 valid identities security find-identity -v → shows the cert Private key is present in Keychain OpenSSL check shows: X509v3 Extended Key Usage: Critical (Expected one might be: Code Signing) We recreated CSR + cert multiple times (G2 Sub-CA), ensured Login keychain, unlocked keychain, etc., but same result. Question: Why is the Developer ID Installer cert missing Code Signing usage and not recognized for signing? Is there any account restriction or step we might be missing? Any recommendations on resolving this issue. Thanks!
1
0
446
4w
macOS DNS Proxy system extension makes device stop processing MDM commands until reboot
Hi, I see an interaction issue between a DNS Proxy system extension and MDM on macOS: after some time the device stops processing MDM commands until reboot, while DNS filtering continues to work. Environment: macOS: 15.x / 26.x (reproduced on multiple minor versions) App: /Applications/MyMacProxy.app System extension: NEDNSProxyProvider as system extension Bundle id: com.company.agent.MyMacProxy.dnsProxy Deployment: MDM (SimpleMDM) DNS proxy config via com.apple.dnsProxy.managed Devices: supervised Macs Steps to reproduce: Enrol Mac into MDM. Install MyMacProxy app + DNS proxy system extension via pkg and apply com.apple.dnsProxy.managed profile. DNS proxy starts, DNS is filtered correctly, user network works normally. After some hours, try to manage the device from MDM: push a new configuration profile, remove an existing profile, or install / remove an app. 5.MDM server shows commands as pending / not completed. On the Mac, DNS is still filtered via our DNS proxy, and general network access (Safari etc.) continues to work. After reboot, pending MDM commands are processed and we can remove the app, profile and system extension normally. This is reproducible on our test machines. What I see on the Mac in the “stuck” state apsd is running: sudo launchctl print system/com.apple.apsd # job state = running com.apple.mdmclient.daemon exists as a job but is not running: sudo launchctl print system/com.apple.mdmclient.daemon Abbreviated output: system/com.apple.mdmclient.daemon = { ... state = not running job state = exited runs = 5 last exit code = 0 ... } So the MDM client daemon has exited cleanly (exit code 0) and is currently not running; its APS endpoints are configured. Our DNS proxy system extension is still processing flows: we see continuous logging from our NEDNSProxyProvider, and DNS filtering is clearly active (requests go through our upstream). systemextensionsctl list still shows our DNS proxy system extension as active. From the user’s perspective, everything works (with filtered DNS). From the MDM server’s perspective, commands stay pending until the next reboot. After reboot, MDM behaviour is normal again. Uninstall / cleanup (current approach, simplified) We currently use an MDM‑delivered shell script that: disables our DNS proxy configuration for the console user by editing ~/Library/Preferences/com.apple.networkextension.plist and setting Enabled = false for our DNSProxyConfigurations entries; flushes DNS cache and restarts mDNSResponder; unloads our LaunchDaemon / LaunchAgent for the host app; kills the system extension process using pgrep -f "com.company.agent.MyMacProxy.dnsProxy" | xargs kill -9; removes the extension binary from /Library/SystemExtensions/.../com.company.agent.MyMacProxy.dnsProxy.systemextension; removes /Applications/MyMacProxy.app and related support files. We currently do not call systemextensionsctl uninstall <TEAMID> com.company.agent.MyMacProxy.dnsProxy from MDM, mainly because of SIP and because we understand that fully silent system extension uninstall is constrained. The MDM responsiveness issue, however, can appear even if we don’t run this aggressive uninstall script and just let the extension run for some hours. Questions Is it expected that a DNS Proxy system extension (managed via com.apple.dnsProxy.managed) can leave a device in a state where: apsd is running, com.apple.mdmclient.daemon is not running (last exit code 0), DNS proxy continues to filter traffic, but MDM commands remain pending until reboot? Are there known best practices or pitfalls when combining: DNS Proxy system extensions (NEDNSProxyProvider), MDM‑distributed com.apple.dnsProxy.managed profiles, and MDM app / profile management on recent macOS versions? For uninstall in an MDM environment, what pattern do you recommend? For example, is it better to: disable / remove the DNS proxy profile, stop the NE configuration via NEDNSProxyManager from the app, avoid killing the system extension or removing files from /Library/SystemExtensions immediately, and instead require a reboot for full removal? I can provide a sysdiagnose and unified logs (including nesessionmanager, mdmclient and our logs) from an affected machine if that would be helpful.
1
0
162
4w
same passkey synced on 2 devices generate different prf outputs for the same salt
Steps to reproduce: register a passkey on device A authenticate on device A, using the prf extension and a constant salt. Note the prf output go to device B. wait for iCloud sync authenticate on device B using the prf extension and the same constant salt. Note the prf output The prf outputs are different. Note: Repeat the authentication on each device. The prf output is identical for a given device, which seems to point towards the inclusion of a device specific component in the prf derivation. In my scenario, I need the prf output to be the same regardless of the device since I use it as the recovery key for my app data. Could you confirm that this is the expected behavior or not? Thanks,
Replies
1
Boosts
0
Views
298
Activity
4w
How long it takes to get Apple Developer Account?
I enrolled an Apple Developer Account since yesterday and it still pending. I wonder how long it takes to get approve from Apple? Please share your experience.And enroll message this :Purchase your membership.To continue your enrollment, complete your purchase now.Your purchase may take up to 48 hours to process. Help me Thank you
Replies
36
Boosts
9
Views
52k
Activity
4w
Enterprise distribution profile not working for enterprise app
Our enterprise App (Loan Signature) is distributed to our corporate Ipads using JAMP. We use provisioning profile and certificate along with the IPA file to push the builds. Our current disstribution profile is expiring on 23d April 2026 and we wanted to update the Profile. So we created a new provisioning profile (Enterprise V9, along with a new ceritificate that ends on April 1st 2029). The enterprise provisioning profile is created in the same way as the old one which is called Enterprise V8. However when we use JAMP to upload the certificate and our current production version of app, it is not working. The app would not load and it would complain that the app is not available. I was told by the JAMF administrators that the profile could be wrong and I have no way to find out. Any help in this regard will really be helpful.
Replies
1
Boosts
0
Views
507
Activity
4w
What is going on with the developer program
Ive paid the 99$ fee almost 6 days ago while it said 48h and i’ll get the progra.. well i haven’t recived nothing, I’ve contacted apple support nearly 5 times, Guess what? No response. ive called their support “uhm sorry im not working in the development team sent us an email“ lmao tried yall are ignoring ur clients which is disappointing.. any ideas of what can i do next to GET access to my account which ive paid for?
Replies
3
Boosts
1
Views
131
Activity
4w
Xcode 26 with simulator 16 ?
mac mini xcode 26.4, but the simulator version is 16. how can i update the simulator to version 26?
Replies
2
Boosts
0
Views
147
Activity
4w
Different app behavior when running on device from Xcode
I have an app I am working on that makes a REST call, updates the UI with the info, and sends a notification. When I run Build and Run my app from Xcode using my iPhone as the destination, it works exactly as I want it to - my REST calls and notifications continue to work when the app is in the background. However, when I run my app that has been installed on my iPhone from the Xcode build/run directly (without Xcode in the picture), it does NOT behave correctly and only works when my app is in the foreground. What am I missing?
Replies
6
Boosts
0
Views
438
Activity
4w
DeviceActivityMonitor extension rejected by App Store Connect validator — NSExtensionPointIdentifier "com.apple.deviceactivity.monitor" invalid (IrisAPI -19241)
Hi everyone, I'm building an iOS app that uses a DeviceActivityMonitor app extension as part of the Screen Time / Family Controls API. Every time I try to upload my IPA to App Store Connect, the validation fails with this error: "Invalid Info.plist value. The value of the NSExtensionPointIdentifier key, com.apple.deviceactivity.monitor, in the Info.plist of 'Alexandria.app/PlugIns/AlexandriaActivityMonitor.appex' is invalid." Error Domain=IrisAPI Code=-19241, iris-code=STATE_ERROR.VALIDATION_ERROR What I have verified (everything looks correct): NSExtensionPointIdentifier = com.apple.deviceactivity.monitor NSExtensionPrincipalClass = AlexandriaActivityMonitor.AlexandriaActivityMonitorExtension (correctly resolved in the compiled binary, verified with plutil -p) The Swift class correctly subclasses DeviceActivityMonitor CFBundleShortVersionString matches the main app Both the main app and extension provisioning profiles explicitly contain com.apple.developer.family-controls = true (verified by inspecting embedded.mobileprovision inside the IPA) The binary code signature itself contains com.apple.developer.family-controls = true (verified with codesign -d --entitlements :-) Family Controls entitlement was requested and approved in the Developer Portal for both App IDs Tested with both Xcode 26.2 (iOS 26 SDK) and Xcode 16.4 (iOS 18 SDK) — same error in both cases The IPA is structurally correct. The error comes purely from Apple's server-side IrisAPI validator and does not correspond to anything I can identify or fix in the code or configuration. Has anyone successfully submitted an app with a DeviceActivityMonitor extension to App Store Connect recently? Is there a backend approval requirement for com.apple.deviceactivity.monitor beyond the standard Family Controls entitlement approval? Could this be a known validator bug for this specific extension type? Any help appreciated.
Replies
6
Boosts
1
Views
545
Activity
4w
Setting up video and image capture pipeline creates internal errors in AVFoundation.
I have created code for iOS that allows me to start and stop video acquisition from a proprietary USB camera using AVFoundation's AVCaptureSession and AVCaptureDevice APIs. There is a start and stop method. The start method takes an argument to specify one of two formats that I use for my custom camera application. I can start the session and switch between formats all day without any errors. However, if I start and then stop the camera three times in a row, on the third invocation of start, I get errors in the console output and the CMSampleBuffers stop flowing to my callback. Additionally, once I get AVFoundation into this state, stoping the camera doesn't help. I have to kill the app and start over. Here are the errors. And below these, the code. I'm hoping someone who has experience with these errors or an engineer from Apple who knows the AVFoundation image capture pipeline code, can respond and tell me what I'm doing wrong. Thanks. <<<< FigCaptureSourceRemote >>>> Fig assert: "! storage->connectionDied" at bail (FigCaptureSourceRemote.m:235) - (err=0) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:558) - (err=-16453) <<<< FigCaptureSourceRemote >>>> Fig assert: "! storage->connectionDied" at bail (FigCaptureSourceRemote.m:235) - (err=0) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:253) - (err=-16453) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:269) - (err=-16453) <<<< FigCaptureSourceRemote >>>> Fig assert: "err == 0 " at bail (FigCaptureSourceRemote.m:511) - (err=-16453) Capture session error: The operation could not be completed Capture session error: The operation could not be completed func start(for deviceFormat: String) async throws -> AnyPublisher<CMSampleBuffer, Swift.Error> { func configureCaptureDevice(with deviceFormat: String) throws { guard let format = formatDict[deviceFormat] else { throw Error.captureFormatNotFound } captureSession.beginConfiguration() defer { captureSession.commitConfiguration() } try captureDevice.lockForConfiguration() captureDeviceFormat = deviceFormat captureDevice.activeFormat = format captureDevice.unlockForConfiguration() } return try await withCheckedThrowingContinuation { continuation in sessionQueue.async { [unowned self] in logger.debug("Start capture session for \(deviceFormat): \(String(describing: captureSession))") // If we were already steaming camera images from a different mode, terminate that stream. bufferPublisher?.send(completion: .finished) bufferPublisher = nil captureDeviceFormat = "" do { // Re-configure with the new format; should be harmless if called with the currently configured format. try configureCaptureDevice(with: deviceFormat) // Return a new stream publisher for this invocation. bufferPublisher = PassthroughSubject<CMSampleBuffer, Swift.Error>() // If we are not currently running, start the image capture pipeline. if captureSession.isRunning == false { captureSession.startRunning() } continuation.resume(returning: bufferPublisher!.eraseToAnyPublisher()) } catch { logger.fault("Failed to start camera: \(error.localizedDescription)") continuation.resume(throwing: error) } } } } func stop() async throws { try await withCheckedThrowingContinuation { continuation in sessionQueue.async { [unowned self] in logger.debug("Stop capture session: \(String(describing: captureSession))") // The following invocation is synchronous and takes time to execute; // looks like a stall but you can ignore it as the MainActor is not blocked. captureSession.stopRunning() // Terminate the stream and reset our state. bufferPublisher?.send(completion: .finished) bufferPublisher = nil captureDeviceFormat = "" // Signal the caller that we are done here. continuation.resume() } } }
Replies
0
Boosts
0
Views
235
Activity
4w
App Store Connect rejects com.apple.deviceactivity.monitor for Device Activity Monitor Extension
I’m submitting an iOS app that uses Family Controls / DeviceActivity APIs, and App Store Connect rejects the archive during distribution with this error: Invalid Info.plist value. The value of the NSExtensionPointIdentifier key, com.apple.deviceactivity.monitor, in the Info.plist of “activity-tracking.app/PlugIns/ScheduleMonitorExtension.appex” is invalid. What I’ve already verified: Family Controls capability is approved for our team App IDs and distribution provisioning profiles were regenerated The source Info.plist for the extension contains: NSExtensionPointIdentifier = com.apple.deviceactivity.monitor The archived .appex inside the .xcarchive also contains the same exact value Signed entitlements in the archived .appex include: com.apple.developer.family-controls = true app group entitlement Main app archive is signed correctly as well Latest stable Xcode used This makes it look like the archive is configured correctly, but App Store Connect still rejects the Device Activity Monitor extension point itself. Has anyone successfully distributed a third-party app containing a Device Activity Monitor Extension to App Store Connect recently? Is there an additional Apple-side approval required beyond visible Family Controls entitlement approval?
Replies
1
Boosts
0
Views
174
Activity
4w
4.3a
Hello, The issues we previously identified still need your attention. If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know. Review Environment Submission ID: f14dec0a-1269-438e-b483-6d806b3d17bf Review date: April 13, 2026 Review Device: iPhone 17 Pro Max Version reviewed: 1.0 Guideline 4.3(a) - Design - Spam Issue Description We noticed the app shares a similar binary, metadata, and/or concept as other apps you already submitted to the App Store, with only minor differences. Submitting similar or repackaged apps is a form of spam that creates clutter and makes it difficult for users to discover new apps. Next Steps Since we do not accept spam apps on the App Store, we encourage you to review the app concept and submit a unique app with distinct content and functionality. Resources Some factors that contribute to a spam rejection may include: Submitting an app with the same source code or assets as other apps already submitted to the App Store Creating and submitting multiple similar apps using a repackaged app template Purchasing an app template with problematic code from a third party Submitting several similar apps across multiple accounts Learn more about our requirements to prevent spam in guideline 4.3. Support Reply to this message in your preferred language if you need assistance. If you need additional support, use the Contact Us module. Consult with fellow developers and Apple engineers on the Apple Developer Forums. Provide feedback on this message and your review experience by completing a short survey. I am not able to get through this. Can someone help?
Replies
1
Boosts
0
Views
114
Activity
4w
Apple Review
Apple review usually takes a couple hours or even 2 days or less to review my submissions but it’s taking them 4 days to review it I submitted on a Wednesday. should I re-submit?
Replies
1
Boosts
0
Views
136
Activity
4w
Lookify: AI Virtual Try-On — Stuck in "Waiting for Review" | 2 Months
Hello Apple Developer Community and App Review Team, I'm writing to seek guidance regarding my app Lookify: AI Virtual Try-On (App ID: 6757718224), which has been caught in an ongoing review cycle since February 15, 2026 — nearly two months ago. Submission History: Date Version Status Feb 15 iOS 1.1.0 Removed Feb 19 iOS 1.1.0 Removed Feb 21 iOS 1.1.0 Removed Apr 3 (2:21 AM) iOS 1.1.0 Removed Apr 3 (1:17 PM) iOS 1.1.0 Removed Apr 6 (current) iOS 1.1.0 Waiting for Review Each submission was either self-removed after extended waiting periods with no reviewer feedback, or removed to address potential issues — only to re-enter the queue with the same outcome. The current submission has now been in "Waiting for Review" status since April 6 with no activity, no messages, and no indication of progress. What I've done to comply: Updated the Privacy Policy to be fully GDPR and KVKK compliant Provided clear demo account credentials and usage instructions for the AI try-on feature Ensured all metadata, screenshots, and descriptions accurately reflect the app's functionality Reviewed Apple's App Review Guidelines thoroughly before each resubmission I understand that AI-powered apps — especially those involving visual try-on technology — may require closer scrutiny, and I fully respect that process. I'm not asking to bypass any review step. I simply ask for transparency: if there is an issue with the app, a rejection with specific feedback would allow me to address it immediately. This app represents months of development work. As a small independent developer, prolonged uncertainty without communication makes it very difficult to plan or improve. My request: Could anyone from the App Review team or community provide insight into: Whether there is an active flag or concern on this submission What the expected timeline might be for accounts with this submission history Whether an Expedited Review would be appropriate given this timeline I have also submitted a contact request through the official App Review contact form. I am fully committed to making any necessary changes — I just need to know what they are. Thank you sincerely for your time and assistance. Mustafa Bilgiç Developer, PlayTools
Replies
2
Boosts
1
Views
232
Activity
4w
Ventura Hack for FireWire Core Audio Support on Supported MacBook Pro and others...
Hi all,  Apple dropping on-going development for FireWire devices that were supported with the Core Audio driver standard is a catastrophe for a lot of struggling musicians who need to both keep up to date on security updates that come with new OS releases, and continue to utilise their hard earned investments in very expensive and still pristine audio devices that have been reduced to e-waste by Apple's seemingly tone-deaf ignorance in the cries for on-going support.  I have one of said audio devices, and I'd like to keep using it while keeping my 2019 Intel Mac Book Pro up to date with the latest security updates and OS features.  Probably not the first time you gurus have had someone make the logical leap leading to a request for something like this, but I was wondering if it might be somehow possible of shoe-horning the code used in previous versions of Mac OS that allowed the Mac to speak with the audio features of such devices to run inside the Ventura version of the OS.  Would it possible? Would it involve a lot of work? I don't think I'd be the only person willing to pay for a third party application or utility that restored this functionality. There has to be 100's of thousands of people who would be happy to spare some cash to stop their multi-thousand dollar investment in gear to be so thoughtlessly resigned to the scrap heap.  Any comments or layman-friendly explanations as to why this couldn’t happen would be gratefully received!  Thanks,  em
Replies
64
Boosts
10
Views
36k
Activity
4w
tvOS: Background audio + local caching works on Simulator but stops on real Apple TV device
Description: I’m developing a tvOS app using SwiftUI where we play background audio (music) in the Welcome screen, with support for offline playback via local caching. 🔹 Feature Overview App fetches audio metadata from API Starts streaming audio (HLS .m3u8) immediately In parallel, downloads the raw audio file (.mp3) Once download completes: Switches playback from streaming → local file On next launch (offline mode), app plays audio from local storage 🔹 Issue This flow works perfectly on the Simulator, but on a real Apple TV device: Audio plays for a few seconds (2–5 sec) and then stops Especially after switching from streaming → local file No explicit AVPlayer error is logged Playback sometimes stops after UI updates or periodic API refresh 🔹 Implementation Details Using AVPlayer with AVPlayerItem Background audio controlled via a shared manager (singleton) Files stored locally using FileManager (currently using .cachesDirectory) Switching playback using: player.replaceCurrentItem(with: AVPlayerItem(url: localURL)) player.play() 🔹 Observations Works reliably on Simulator On device: Playback stops silently Seems related to lifecycle, buffering, or file access No issues when continuously streaming (without switching to local) 🔹 Questions Is there any limitation or known issue with AVPlayer when switching from streaming (HLS) to local file playback on tvOS? Are there specific requirements for playing locally cached media files on tvOS (e.g., file location, permissions, or sandbox behavior)? What is the recommended storage location and size limit for cached media files on tvOS? We understand tvOS has limited persistent storage Is .cachesDirectory the correct approach for this use case? Are there known differences in AVPlayer behavior between Simulator and real Apple TV devices (especially regarding buffering or lifecycle)? What is the recommended approach for implementing offline background audio on tvOS apps? 🔹 Goal We want to implement a reliable system where: Audio streams initially Seamlessly switches to local file after download Continues playing without interruption Supports offline playback on subsequent launches Any guidance or best practices would be greatly appreciated. Thank you!
Replies
1
Boosts
0
Views
238
Activity
4w
StoreKit access in keyboard extensions
Hello Apple team, We would like to access the user's available purchases from the keyboard extension. Making purchases directly from the keyboard is a great benefit, but we assume it is intentionally disabled to prevent abuse or fraudulent purchase attempts. What we care about the most is determining if the user has an item that contains a discount or a free trial to personalize messaging when we suggest the user go to the app and make a purchase. We hope you'd consider revising your policy around StoreKit usage.
Replies
1
Boosts
0
Views
216
Activity
4w
Slow launch of app on iOS Simulator 26.4
Each time I launch a Debug version of the app on iOS Simulator, I see the Launch Screen presented and then about a 30-second delay before the app is responsive and debug output appears in the console panel. Filed FB22345091
Replies
9
Boosts
7
Views
741
Activity
4w
LLDB RPC server crashes when running top-level async code in Playground files
When running top-level async code in Swift Playgrounds, the LLDB RPC server crashes. For example, when running the following code from Concurrency section of The Swift Programming Language book: func fetchUserID(from server: String) async -> Int { if server == "primary" { return 97 } return 501 } let userIDs = await withTaskGroup(of: Int.self) { group in for server in ["primary", "secondary", "development"] { group.addTask { return await fetchUserID(from: server) } } var results: [Int] = [] for await result in group { results.append(result) } return results } print(userIDs) Xcode reports that the LLDB RPC server has crashed. The Swift Playground app reports “There was a problem running this playground.” However, in the case of the Swift Playground app, results are populated as expected. For example, the console shows “[97, 501, 501]”. Xcode does not print any results in the console. Tested with Xcode 26.4 (17E192) and Swift Playground Version 4.7 (2088). Wrapping the async code in a Task {} resolves the issue. Running this code in a standalone Swift file produces the expected result without an error. FB22416465 From the analytics report, attached in the feedback report, but in case it helps others identify the same issue in their crashes: Triggered by Thread: 26 RPC packet thread for client tid 013af238 (20640312) Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000000005a8 Exception Codes: 0x0000000000000001, 0x00000000000005a8 Termination Reason: Namespace SIGNAL, Code 11, Segmentation fault: 11 Terminating Process: exc handler [64943] VM Region Info: 0x5a8 is not in any region. Bytes before following region: 4296211032 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START ---> __TEXT 100130000-1003b8000 [ 2592K] r-x/r-x SM=COW /Applications/Xcode-26.4.0-Release.Candidate.app/Contents/SharedFrameworks/LLDBRPC.framework/Versions/A/Resources/lldb-rpc-server
Replies
1
Boosts
0
Views
262
Activity
4w
Developer ID Installer cert not usable for pkg signing (no Code Signing / 0 identities)
Hello! We built a macOS .pkg using pkgbuild (contains a DMG + postinstall bash script). The pkg works locally on the build machine but fails on other devices manually / via MDM unless signed. We tried signing with a Developer ID Installer certificate, but: security find-identity -p codesigning -v → 0 valid identities security find-identity -v → shows the cert Private key is present in Keychain OpenSSL check shows: X509v3 Extended Key Usage: Critical (Expected one might be: Code Signing) We recreated CSR + cert multiple times (G2 Sub-CA), ensured Login keychain, unlocked keychain, etc., but same result. Question: Why is the Developer ID Installer cert missing Code Signing usage and not recognized for signing? Is there any account restriction or step we might be missing? Any recommendations on resolving this issue. Thanks!
Replies
1
Boosts
0
Views
446
Activity
4w
Where to see logs from my application
Hi folks, in my application I write some logs over debugPrint or directly over print. The application is already distributed and some part of functionality failed with application traceback. I would like to ask user for providing logs from the App. Is it possible to get those logs? Thanks Petr
Replies
2
Boosts
0
Views
122
Activity
4w
macOS DNS Proxy system extension makes device stop processing MDM commands until reboot
Hi, I see an interaction issue between a DNS Proxy system extension and MDM on macOS: after some time the device stops processing MDM commands until reboot, while DNS filtering continues to work. Environment: macOS: 15.x / 26.x (reproduced on multiple minor versions) App: /Applications/MyMacProxy.app System extension: NEDNSProxyProvider as system extension Bundle id: com.company.agent.MyMacProxy.dnsProxy Deployment: MDM (SimpleMDM) DNS proxy config via com.apple.dnsProxy.managed Devices: supervised Macs Steps to reproduce: Enrol Mac into MDM. Install MyMacProxy app + DNS proxy system extension via pkg and apply com.apple.dnsProxy.managed profile. DNS proxy starts, DNS is filtered correctly, user network works normally. After some hours, try to manage the device from MDM: push a new configuration profile, remove an existing profile, or install / remove an app. 5.MDM server shows commands as pending / not completed. On the Mac, DNS is still filtered via our DNS proxy, and general network access (Safari etc.) continues to work. After reboot, pending MDM commands are processed and we can remove the app, profile and system extension normally. This is reproducible on our test machines. What I see on the Mac in the “stuck” state apsd is running: sudo launchctl print system/com.apple.apsd # job state = running com.apple.mdmclient.daemon exists as a job but is not running: sudo launchctl print system/com.apple.mdmclient.daemon Abbreviated output: system/com.apple.mdmclient.daemon = { ... state = not running job state = exited runs = 5 last exit code = 0 ... } So the MDM client daemon has exited cleanly (exit code 0) and is currently not running; its APS endpoints are configured. Our DNS proxy system extension is still processing flows: we see continuous logging from our NEDNSProxyProvider, and DNS filtering is clearly active (requests go through our upstream). systemextensionsctl list still shows our DNS proxy system extension as active. From the user’s perspective, everything works (with filtered DNS). From the MDM server’s perspective, commands stay pending until the next reboot. After reboot, MDM behaviour is normal again. Uninstall / cleanup (current approach, simplified) We currently use an MDM‑delivered shell script that: disables our DNS proxy configuration for the console user by editing ~/Library/Preferences/com.apple.networkextension.plist and setting Enabled = false for our DNSProxyConfigurations entries; flushes DNS cache and restarts mDNSResponder; unloads our LaunchDaemon / LaunchAgent for the host app; kills the system extension process using pgrep -f "com.company.agent.MyMacProxy.dnsProxy" | xargs kill -9; removes the extension binary from /Library/SystemExtensions/.../com.company.agent.MyMacProxy.dnsProxy.systemextension; removes /Applications/MyMacProxy.app and related support files. We currently do not call systemextensionsctl uninstall <TEAMID> com.company.agent.MyMacProxy.dnsProxy from MDM, mainly because of SIP and because we understand that fully silent system extension uninstall is constrained. The MDM responsiveness issue, however, can appear even if we don’t run this aggressive uninstall script and just let the extension run for some hours. Questions Is it expected that a DNS Proxy system extension (managed via com.apple.dnsProxy.managed) can leave a device in a state where: apsd is running, com.apple.mdmclient.daemon is not running (last exit code 0), DNS proxy continues to filter traffic, but MDM commands remain pending until reboot? Are there known best practices or pitfalls when combining: DNS Proxy system extensions (NEDNSProxyProvider), MDM‑distributed com.apple.dnsProxy.managed profiles, and MDM app / profile management on recent macOS versions? For uninstall in an MDM environment, what pattern do you recommend? For example, is it better to: disable / remove the DNS proxy profile, stop the NE configuration via NEDNSProxyManager from the app, avoid killing the system extension or removing files from /Library/SystemExtensions immediately, and instead require a reboot for full removal? I can provide a sysdiagnose and unified logs (including nesessionmanager, mdmclient and our logs) from an affected machine if that would be helpful.
Replies
1
Boosts
0
Views
162
Activity
4w