Delve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

watchOS 26.2/26.3: watch app killed by dyld before main() — getNameSelRefVMAddr assertion (FB25270892)
Our App Store watch app is being terminated by dyld before any app code runs, only on watchOS 26.2 (23S303) and 26.3 (23S620). Only the arm64 slice is affected (Series 9/10, Ultra 2), and almost always on background launches. Termination Reason: DYLD 9 Assertion failed: (0), function getNameSelRefVMAddr, file ObjCVisitor.cpp, line 1319. objc_visitor::Method::getNameSelRefVMAddr (ObjCVisitor.cpp:1319) dyld4::optimizeObjCSelectors (PrebuiltObjC.cpp:530) dyld4::PrebuiltObjC::make (PrebuiltObjC.cpp:1372) dyld4::PrebuiltLoaderSet::makeLaunchSet (PrebuiltLoader.cpp:2309) dyld4::prepare (dyldMain.cpp:960)Our previous app version crashes in the same function with SIGSEGV instead (same frame offsets on the same dyld build). The fault address lies just past a mapped-file region. What we checked: The crashing binary UUID matches our archive. Every ObjC method list in every image is a standard relative list (0x80000000). None has the selector-offset flag (0x40000000), which is what that assertion branch expects according to the open-source dyld. dyld_info -objc parses all images cleanly. Build settings and linker flags are defaults (Xcode 27.1). So it looks like dyld is reading the wrong data while building the launch closure, rather than our binary being malformed. This seems related to https://developer.apple.com/forums/thread/810471: same OS range, same "dyld before main(), ObjC metadata" symptom. That report involves VPP installs, while ours is App Store distribution. Full crash logs, binaries and analysis are in FB25270892. Has anyone else seen this? Is it fixed in watchOS 26.4 or later, and is there any workaround on the app side?
4
0
165
1w
Supported approach for real-time iPhone fall detection while an occupational lone-worker safety app is backgrounded?
Hi, I'm developing SafeChain, an occupational lone-working safety application for iOS and Android. One of our objectives is to detect a potential fall using the iPhone's accelerometer and notify an assigned responder if the worker doesn't acknowledge a warning. The requirement is for this to work while the iPhone is locked or the app is backgrounded, without requiring an Apple Watch. We've tested several approaches on a physical iPhone: CMMotionManager: Works reliably in the foreground, but we recorded a 254-second interruption during a five-minute locked-screen test. CMSensorRecorder: Successfully recovered 20,635 accelerometer samples from a seven-minute locked-screen recording, with a maximum sampling gap of 0.024 seconds. BGAppRefreshTask: Scheduling requests were accepted, but we could not confirm timely background execution. Our challenge isn't obtaining the accelerometer data. It's ensuring the application can analyse that data and initiate an emergency escalation promptly, even while iOS would ordinarily suspend the app. SafeChain also provides lone-worker check-ins, manual SOS, responder escalation and contact-loss monitoring. My questions are: Is there currently an Apple-supported approach for continuous or event-triggered motion analysis on an iPhone while an occupational safety application is backgrounded? Would a genuine lone-worker location-monitoring feature provide a legitimate basis for background location execution alongside Core Motion processing, assuming location tracking is itself an intended user-facing feature? Is there an entitlement or alternative API specifically available for occupational safety applications requiring timely emergency detection? If none exists, is it correct that dependable, real-time, iPhone-only fall detection is not currently supported by iOS? We want to comply fully with Apple's guidelines and avoid implementing a background-execution workaround that may prove unreliable or fail App Review. Any guidance from Apple engineers would be greatly appreciated. Thank you,
2
0
147
1w
iOS 27: PDFDocument.dataRepresentation() writes corrupt 16-bpc annotation images (half the data missing)
Since iOS/iPadOS 27.0, saving a PDF with PDFDocument.dataRepresentation() produces a corrupt file when a page contains a PDFAnnotation subclass that overrides draw(with:in:) and draws a 16-bits-per-component image. The same code works correctly on iOS 26.4. Filed as FBxxxxxxxx. What happens: The annotation is written with /AAPL:AKExtras, and its appearance (/AP) references an image XObject declared as /BitsPerComponent 16 (RGB). The image stream contains only half of the required data (8-bpc worth). Example: 1429 x 2021 image. Required: 17,328,054 bytes. Actual: 8,664,027 bytes. Adobe Acrobat reports "Insufficient data for an image". Other viewers read the 8-bpc data as 16-bpc, so the drawing is squeezed into the upper half of the page and the lower half is empty. In PDFKit, colors may turn black. The problem is in the writing step: a PDF written on iOS 27.0 is broken everywhere, while a PDF written on iOS 26.4 opens correctly on iOS 27.0. How to reproduce: Create a 16-bpc image with UIGraphicsImageRenderer (preferredRange = .extended, or the default format on a wide-color device). Add a PDFAnnotation subclass whose draw(with:in:) draws that image with context.draw(cgImage, in: bounds). Call dataRepresentation() and reopen the result. Current workaround: Create the image with an 8-bpc standard-range format before drawing it in the annotation: let format = UIGraphicsImageRendererFormat.preferred() format.preferredRange = .standard // 8 bpc, sRGB let renderer = UIGraphicsImageRenderer(size: size, format: format) With this, the declared bit depth and the data length match, and the PDF is valid on iOS 27.0. However, this gives up 16-bpc / wide-color output, so I would prefer a solution that keeps the original image quality. Possibly related: FB24882188 / FB24843022 (iOS 27 regression in PDFAnnotation subclasses that override draw(with:in:)). Questions: Does anyone know a way to avoid this issue without downgrading the image to 8 bpc? For example, a different way to create or attach the annotation appearance so that PDFKit on iOS 27 writes the 16-bpc data correctly. Has anyone else seen this, or confirmed whether it is fixed in a later iOS 27 release?
2
0
253
1w
Can an App Clip share an image to Apple Notes through the share sheet?
My App Clip shows an image, and I need that image to end up in Apple Notes as a new note with as few taps as possible. The plan is to present UIActivityViewController with the image, then the user taps Notes, then Save. I know clips can’t use PhotoKit, so “Save Image” is likely out. What I can’t find documented is whether Notes, or any other app’s share extension, still shows up in a clip’s share sheet and actually saves. Has anyone tried this? I don’t have a paid account yet to test it myself. If someone could run a one-file test clip, I can send the code.
0
0
79
1w
iOS 26.6.2: explicit Call Directory block bypassed after prior outgoing interactions
An explicitly blocked cellular caller continues to ring on iOS 26.6.2 (23G90). The number was previously saved and contacted. After removing it from Contacts and deleting its visible Recents entries, blocking still fails. We reproduced this with a minimal Call Directory extension containing exactly one bundled number. It uses no App Groups, shared storage, ranges or identification entries, and does not read isIncremental. Logs from 19 October 2026, IST: 08:03:01.701 — Apple’s Call Directory service: Added 1 phone number blocking entries 08:03:01.708 — Extension completion: expired=false 08:03:15 — Incoming cellular call from the configured test number communicationtrustd: Outgoing interactions found communicationtrustd: No remaining handles, returning trustScores callservicesd: shouldBlock: NO shouldSilence NO The call rings despite successful loading. Is there a supported API or entitlement allowing an explicit block to override prior-interaction precedence? Which retained interaction source could remain after Contacts/Recents deletion? We have a minimal reproduction project and sysdiagnose. Please advise how to provide them privately for engineering investigation.
0
0
58
1w
URGENT: Muse is AUTOMATICALLY blocked by Screen Time API whenever Facebook is blocked, 100% of the time with no workaround for users or developers
PLEASE ADDRESS ASAP: Muse is #1 on the App Store and Facebook is one of the most blocked apps for Screen Time. This is affecting a vast number of people. Description: When a user blocks the Facebook app in any screen time app, iOS automatically blocks Meta's Muse app too. Every single time. There is no way for the user or the developer to prevent it, allowlist it, or even detect that it happened. Muse shows Apple's generic blocked-app "Restricted" screen instead of the screen time app's own design, so the user cannot tell who blocked it or why. This is the worst possible combination of apps: Facebook is one of the most-blocked app across screen time apps. Muse ("Muse from Meta") is currently the #1 app on the App Store. A huge and fast-growing number of users block Facebook and silently lose the world's most popular new app. Muse launched Sept 8, 2026 and adoption is still climbing -- the affected population grows every day. There is NO workaround whatsoever: Users cannot allowlist Muse: it does not appear in Settings > Screen Time > Always Allowed. Developers cannot prevent it: the Screen Time API offers no opt-out; the extra block is applied by iOS itself. Developers cannot detect it: Muse's token (listed separately in FamilyActivityPicker) corresponds to no real identity anywhere else. Developers cannot customize it: their ShieldConfiguration is never consulted -- Muse gets Apple's generic shield UI. Users cannot even block Muse on purpose: shielding Muse's own token is a silent no-op. Screen Time usage statistics are also wrong -- Muse usage is recorded as "Facebook." This Screen Time bug renders screen time apps effectively unusable if users want to block Facebook and use Muse, which is extremely common. How can we get this addressed as soon as possible? Feedback Assistant ticket: https://feedbackassistant.apple.com/feedback/25019832
7
8
507
2w
WeatherKit JWT error (WDSJWTAuthenticatorServiceListener Code 2) on a new App ID with capability and app service both enabled
Every WeatherKit request from my app fails within 0.4 to 2.4 seconds on two physical devices (iPhone 15 Pro and iPad Air 11-inch M3, both iOS/iPadOS 27.0.1, Xcode 27.0): Error Domain=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors Code=2 "(null)" The call is WeatherService.shared.weather(for: location, including: .hourly(startDate: start, endDate: end)). Team ID 8B44CZ9923, bundle ID io.github.rsutcliffe.nightwatch.phone (an explicit App ID created by Xcode automatic signing on 14 October 2026). What I have checked, following the answer in https://developer.apple.com/forums/thread/835229: WeatherKit is enabled as a capability on the App ID (Capabilities tab) and as an app service (App Services tab). com.apple.developer.weatherkit is in the signed app's entitlements and in the embedded provisioning profile. The Program License Agreement update issued on 13 October was accepted on 14 October. I unticked WeatherKit on the App ID, saved, re-ticked it and saved, deleted the cached provisioning profile so Xcode created a new one, reinstalled and retested. Both devices were restarted. The failure is identical on both. Another App ID on the same team works with WeatherKit. This looks like https://developer.apple.com/forums/thread/786126 and https://developer.apple.com/forums/thread/829512, where the settings were also correct. Can WeatherKit token registration for this App ID be checked or reset on the server side? Is there anything else I should verify?
1
0
103
2w
How to detect an updated asset pack (and its download size) without triggering a download in Apple-hosted Background Assets?
Hello, I’m using Apple-hosted Background Assets to deliver resources for my app. Our design is to download asset packs on demand at app launch. Scenario: An asset pack has already been downloaded to the device. We then upload a new version of the asset pack with the same identifier to App Store Connect. Question: Is there a way to detect that an updated version of the asset pack is available, without actually starting the download? Our goal is to show the user the download size and ask for confirmation before the download begins. What I’ve tried: checkForUpdatesWithCompletionHandler: This immediately starts downloading the updated asset pack in the background, so we can’t show the size to the user beforehand. getAssetPackWithIdentifier:completionHandler: When an asset pack with the same identifier already exists locally, this returns the local asset pack instead of information about the updated version on the server. Background: I’m concerned about App Review Guideline 4.2.3 (ii): If your app needs to download additional resources in order to function on initial launch, disclose the size of the download and prompt users before doing so. https://developer.apple.com/app-store/review/guidelines/#minimum-functionality If there’s no way to obtain the size of an update before it downloads, I’m worried our implementation might conflict with this guideline. Is there a recommended API or approach for this? Or, if updates to already-downloaded asset packs are handled automatically by the system, does this guideline still apply to them? Any guidance would be greatly appreciated. Thank you.
0
0
62
2w
Open Parent App From ShieldActionDelegate
Hello, I’m building an app that helps people spend less time on social media apps. For that, I make heavy use of Apple’s Screen Time APIs, such as ManagedSettings and FamilyControls. When an app is locked using a ShieldConfiguration, the user has to open my app in order to unlock it (e.g. enter a code). This is very cumbersome because no documented API exists to open the parent app (=my app) from the ShieldActionDelegate (also part of my app) when the user presses a button of the ShieldConfiguration. The ShieldActionDelegate callback just offers three options in its ShieldActionResponse: .none .defer .close .openParentApp is missing. We are working around this limitation by sending a local push notification that the user has to tap on. This has multiple drawbacks: It has to be ensured that notification permission has been granted. It has to be ensured that notifications can be delivered even while focus is enabled. Features such as Apple Intelligence notification summaries and notification prioritization can heavily delay delivering notifications and thus frustrate the user. Neither my users nor myself do understand why this is not possible in a smoother way, at least according to the documentation. There are 3rd party apps that have such functionality, they can directly open their own app from a button press in the Shield, see here: https://apps.apple.com/us/app/applocker-passcode-lock-apps/id1132845904 It would be great if Apple could level the playfield for all developers and document how this is achievable, because technically it clearly is. Thanks a lot and have a great day!
7
1
1.4k
2w
Bug: AASA file not fetched on app install
~5% of our users when downloading the iOS application from the Apple Store for the first time are unable to enrol a Passkey and experience an error saying the application is not associated with [DOMAIN]. The error message thrown by the iOS credentials API is "The operation couldn't be completed. Application with identifier [APPID] is not associated with domain [DOMAIN]" We have raised this via the developer support portal with case id: 102315543678 Question: Why does the AASA file fail to fetch on app install and is there anything that can be done to force the app to fetch the file? Can this bug be looked at urgently as it is impacting security critical functionality? Other Debugging Observations We have confirmed that our AASA file is correctly formatted and hosted on the Apple CDN. Under normal circumstances the association is created on install and Passkey enrolment works as intended. We have observed that when customers uninstall/reinstall the app this often, but not always, resolves the issue. We also know this issue can resolve itself overtime without any intervention. We have ruled out network (e.g VPN) issues and have reproduced the issue across a number of different network configurations. We have ruled out the Keychain provider and have reproduced it across a variety of different providers and combinations of. We observed this across multiple versions of the iOS operating system and iPhone hardware including the latest hardware and iOS version.
15
3
4k
2w
Apple CDN not picking up updated apple-app-site-association file (valid, 200, since Oct 2)
Apple's AASA CDN is still serving an old version of our apple-app-site-association file, 10 days after we updated it on our server. Setup App ID: 4572YRV3M6.gr.kathimerini.Kathimerini Entitlement: applinks:www.kathimerini.gr File: https://www.kathimerini.gr/.well-known/apple-app-site-association The site is behind Cloudflare. Change We added this exclude, placed before the /syndromes/* entry: { "/": "/syndromes/gastronomos-prosfora/*", "exclude": true }, { "/": "/syndromes/*" }, What we see Our server returns the new file: HTTP 200, Content-Type: application/json, no redirects, valid JSON. The Last-Modified header is Fri, 02 Oct 2026 07:06:39 GMT. It returns the same response when requested with -A "AASA-Bot/1.0.0". https://app-site-association.cdn-apple.com/a/v1/www.kathimerini.gr still returns the old file without the new rule. A clean install on a test device still uses the old rules. Questions Is there a way to see whether Apple's crawler is failing to fetch our file, and why? Can the CDN copy be refreshed, or is there a typical maximum delay? Is there a Cloudflare or caching configuration known to cause this? Thanks!
3
0
155
2w
Can a Family Controls app sync a derived daily score to a server?
An app using FamilyControls (.individual) computes a single daily number on device from the user's own DeviceActivity data. Can that number be sent to a server so the user can compare it with friends? No app tokens, bundle IDs, or per-app times would leave the device. Is this allowed under DPLA section 3.3.3(P), which limits sharing usage data "beyond … the individual and their device"?
0
1
186
2w
Request: Higher-Frequency IMU Access on Apple Watch for Sports Performance Apps
Hi everyone, I’m building a sports performance app for Apple Watch that uses the onboard IMU to analyze swings and impacts in sports like tennis and golf. The goal is to estimate club/racket head speed, ball speed, and shot quality in real time from wrist motion data. With Core Motion, I can currently get deviceMotion updates at ~100 Hz. While this is fine for general movement tracking, the actual ball impact happens much faster — 5–10 ms in tennis and ~0.5 ms in golf. Many of the high-frequency vibration/impact components are missed at 100 Hz, making it hard to directly measure or more accurately estimate certain performance metrics. Questions for Apple / community: 1. Is there a way to access raw accelerometer and gyroscope data at higher sampling rates (e.g., 500–1000 Hz) on Apple Watch? 2. If not, is this due to hardware limitations or an API/software constraint? 3. Are there any research, partner, or beta programs that allow deeper sensor access for sports-science use cases? Even modest increases in IMU sampling could unlock more accurate ball-speed estimates, impact force analysis, and strike-quality detection without needing external sensors — making Apple Watch a best-in-class wearable for precision sports analytics. Happy to share more about the current approach, sample data, and potential use cases if helpful. Thanks, Max
2
0
1.3k
2w
watchOS CallKit calls: no DTMF keypad, no audio-route picker, no Recents — are these system-gated for third-party providers?
Hi all, I'm building a watchOS VoIP app that places and receives calls through CallKit, with call audio staying on the watch (not routed to the paired iPhone). Calls connect and audio works. But three parts of the system in-call UI that the native Phone app shows never appear for my app, and I'd like to confirm whether this is expected or a misconfiguration on my side. Environment watchOS 26.0, Apple Watch 11 (reproduced on a physical device) Xcode 27.1 Companion watchOS app, calls driven by CXProvider / CXCallController What's missing during an active call No DTMF keypad. The user can't open a keypad from the system call screen, so in-call DTMF (e.g. navigating an IVR) is impossible. No audio-route picker. No control to switch output route (e.g. speaker vs. the default route). No entry in Recents. Completed calls don't appear in the watch's call history. The system call UI is full-screen and in front, so I also can't present my own keypad or route control on top of it. What I've already tried (all public API) // Reported call callUpdate.supportsDTMF = true // Provider configuration config.includesCallsInRecents = true config.supportedHandleTypes = [.phoneNumber] config.maximumCallGroups = 1 // Audio session: route changes programmatically, but adds no user-facing picker try session.setCategory(.playAndRecord, mode: .voiceChat) try session.overrideOutputAudioPort(.speaker) // Never invoked — no keypad exists to generate the action func provider(_ provider: CXProvider, perform action: CXPlayDTMFCallAction) { ... } None of these make the keypad, the route picker, or a Recents entry appear. The behavior is identical regardless of these values, which makes me suspect these controls are exposed only for the native telephony/relay call path, not for third-party CXProvider calls on the watch. Questions Are the in-call DTMF keypad, audio-route picker, and Recents entry available to third-party CXProvider calls on standalone watchOS at all, or are they reserved for the system (relayed cellular / FaceTime) call UI? If not, is there a supported way to present my own keypad or route control during an active CallKit call, given the system call UI is in front? Thanks!
1
0
667
2w
Supported way to return the user to the app they chose after a pause screen (App Intent from an "App is Opened" automation)
We're building a Screen Time / mindful-pause app for iOS 26–27. The user adds a Shortcuts personal automation "When is Opened" that runs our App Intent. The intent passes the trigger app's Bundle Identifier (from the trigger output) and shows a short pause screen. When the user taps "Continue", we want to take them back into that app — only the one app they chose, only after they tap. Is there a supported API to open another installed app when the user taps Continue, given its bundle identifier from the Shortcuts trigger? A DTS reply in 2024 said there was no supported way (thread 740707). Has anything changed in iOS 26/27? (Related feedback: FB15500695.) If not, is it acceptable to open the chosen app via a URL scheme it registers in its Info.plist, including a third-party sign-in callback scheme, purely to bring it to the foreground? Many apps register no URL scheme. Is there a recommended pattern — e.g. handing control back to Shortcuts so the automation or the "Open App" action opens the trigger app — without the "App is Opened" automation firing again in a loop? What's the recommended way to avoid that re-fire? We currently ignore it for a short time window. A minimal sample project reproduces this (App Intent, pause screen, Continue using UIApplication.open). Happy to share it. Xcode 27.0 (27A266a), iOS 27.0 (24A446).
0
0
146
2w
Has the iOS system adapted to the time zone policy of British Columbia, Canada?
Has the iOS system adapted to the time zone policy of British Columbia, Canada? If the iPhone's system time zone is set to America/Edmonton, what result should the code below return after adapting? [[NSTimeZone systemTimeZone] isDaylightSavingTime] [[NSTimeZone systemTimeZone] secondsFromGMT] [[NSTimeZone systemTimeZone] daylightSavingTimeOffset]
1
0
185
2w
Connection problems between Xcode and Apple Watch
Hello! As I try to use Xcode (has happened in versions 16 and 26) and my Apple Watch (has happened with Series 6 and 10), the Devices and Simulators window reports problems connecting to the Watch. Messages vary from "Connecting to Apple Watch" to "Waiting to reconnect: Previous preparation error: the tunnel connection failed while the system tried to connect to the device; client unable to receive tunnel handshake response", or "Apple Watch may need to be unlocked to recover from previously reported preparation errors. Ensure the device is unlocked and near this Mac for better connection quality." The Watch was operational, and on my wrist, so it was unlocked. Any suggestions on how to move beyond this? Thank you!
7
2
957
2w
iOS 27: system-wide registered fonts disappear from Settings > General > Fonts after every reboot
Hello, We ship a font provider app that installs fonts system-wide on iOS, delivering the font files through On-Demand Resources. Since iOS 27 shipped, customers have been reporting that their installed fonts vanish from the system font list after every restart. I would like to know whether the restore path for system-wide font registrations changed in iOS 27, and what a font provider app is expected to do after a device reboot. Environment iOS 27.0 and 27.0.0 only. We have no reports on iOS 26 or earlier. iPhone 18 Pro and iPhone 18 Pro Max Fonts delivered through On-Demand Resources and registered for system-wide installation using CoreText Steps to reproduce Activate a font in the app. It appears in Settings > General > Fonts. Reboot the device. Without launching the app, open Settings > General > Fonts. The font is gone. The app still shows the font as active, because it keeps its own activation state. Deactivate and reactivate the font in the app. It comes back. Reboot again. It disappears again. This happens on every reboot. It also happens with a single font activated, and it persists after updating or reinstalling the app. Because the font is missing from the system font list, it is also missing in other apps that use system fonts. What we have ruled out Not low storage. These are new devices with plenty of free space. The documented purge trigger for On-Demand Resources is low storage, which does not explain a result this consistent. Not a crash. Our crash data for the affected app version shows no elevated crash rate on iOS 27 compared to iOS 18. Not specific to one font or one app version. Questions Did the restore path for system-wide font registrations change in iOS 27? Are registrations that reference files inside On-Demand Resources still restored at boot? If a font provider app now has to re-register after a reboot, when and how should it do that? There is no natural launch point, since someone may use the font in another app without opening ours first. Is there a supported way for the app to detect that a font it installed is no longer present in the system font list, so it can repair the registration quietly? Context We deliver several thousand fonts this way, and Apple increased our On-Demand Resources limit for that reason (Case-ID 17273913, December 2025). On-Demand Resources is deprecated as of iOS 27. We have separately confirmed that fonts delivered through Background Assets cannot be registered system-wide: registration fails with CTFontManagerErrorDomain code 306, both from the Background Assets container and after copying the files into the app sandbox, because CoreText requires the file to sit inside the app bundle or On-Demand Resources. We have a separate question open about that migration path, so this post is only about the reboot behavior on iOS 27. Happy to provide a sysdiagnose from an affected device and a sample project. Thank you.
2
0
567
3w
watchOS 26.2/26.3: watch app killed by dyld before main() — getNameSelRefVMAddr assertion (FB25270892)
Our App Store watch app is being terminated by dyld before any app code runs, only on watchOS 26.2 (23S303) and 26.3 (23S620). Only the arm64 slice is affected (Series 9/10, Ultra 2), and almost always on background launches. Termination Reason: DYLD 9 Assertion failed: (0), function getNameSelRefVMAddr, file ObjCVisitor.cpp, line 1319. objc_visitor::Method::getNameSelRefVMAddr (ObjCVisitor.cpp:1319) dyld4::optimizeObjCSelectors (PrebuiltObjC.cpp:530) dyld4::PrebuiltObjC::make (PrebuiltObjC.cpp:1372) dyld4::PrebuiltLoaderSet::makeLaunchSet (PrebuiltLoader.cpp:2309) dyld4::prepare (dyldMain.cpp:960)Our previous app version crashes in the same function with SIGSEGV instead (same frame offsets on the same dyld build). The fault address lies just past a mapped-file region. What we checked: The crashing binary UUID matches our archive. Every ObjC method list in every image is a standard relative list (0x80000000). None has the selector-offset flag (0x40000000), which is what that assertion branch expects according to the open-source dyld. dyld_info -objc parses all images cleanly. Build settings and linker flags are defaults (Xcode 27.1). So it looks like dyld is reading the wrong data while building the launch closure, rather than our binary being malformed. This seems related to https://developer.apple.com/forums/thread/810471: same OS range, same "dyld before main(), ObjC metadata" symptom. That report involves VPP installs, while ours is App Store distribution. Full crash logs, binaries and analysis are in FB25270892. Has anyone else seen this? Is it fixed in watchOS 26.4 or later, and is there any workaround on the app side?
Replies
4
Boosts
0
Views
165
Activity
1w
Supported approach for real-time iPhone fall detection while an occupational lone-worker safety app is backgrounded?
Hi, I'm developing SafeChain, an occupational lone-working safety application for iOS and Android. One of our objectives is to detect a potential fall using the iPhone's accelerometer and notify an assigned responder if the worker doesn't acknowledge a warning. The requirement is for this to work while the iPhone is locked or the app is backgrounded, without requiring an Apple Watch. We've tested several approaches on a physical iPhone: CMMotionManager: Works reliably in the foreground, but we recorded a 254-second interruption during a five-minute locked-screen test. CMSensorRecorder: Successfully recovered 20,635 accelerometer samples from a seven-minute locked-screen recording, with a maximum sampling gap of 0.024 seconds. BGAppRefreshTask: Scheduling requests were accepted, but we could not confirm timely background execution. Our challenge isn't obtaining the accelerometer data. It's ensuring the application can analyse that data and initiate an emergency escalation promptly, even while iOS would ordinarily suspend the app. SafeChain also provides lone-worker check-ins, manual SOS, responder escalation and contact-loss monitoring. My questions are: Is there currently an Apple-supported approach for continuous or event-triggered motion analysis on an iPhone while an occupational safety application is backgrounded? Would a genuine lone-worker location-monitoring feature provide a legitimate basis for background location execution alongside Core Motion processing, assuming location tracking is itself an intended user-facing feature? Is there an entitlement or alternative API specifically available for occupational safety applications requiring timely emergency detection? If none exists, is it correct that dependable, real-time, iPhone-only fall detection is not currently supported by iOS? We want to comply fully with Apple's guidelines and avoid implementing a background-execution workaround that may prove unreliable or fail App Review. Any guidance from Apple engineers would be greatly appreciated. Thank you,
Replies
2
Boosts
0
Views
147
Activity
1w
iOS 27: PDFDocument.dataRepresentation() writes corrupt 16-bpc annotation images (half the data missing)
Since iOS/iPadOS 27.0, saving a PDF with PDFDocument.dataRepresentation() produces a corrupt file when a page contains a PDFAnnotation subclass that overrides draw(with:in:) and draws a 16-bits-per-component image. The same code works correctly on iOS 26.4. Filed as FBxxxxxxxx. What happens: The annotation is written with /AAPL:AKExtras, and its appearance (/AP) references an image XObject declared as /BitsPerComponent 16 (RGB). The image stream contains only half of the required data (8-bpc worth). Example: 1429 x 2021 image. Required: 17,328,054 bytes. Actual: 8,664,027 bytes. Adobe Acrobat reports "Insufficient data for an image". Other viewers read the 8-bpc data as 16-bpc, so the drawing is squeezed into the upper half of the page and the lower half is empty. In PDFKit, colors may turn black. The problem is in the writing step: a PDF written on iOS 27.0 is broken everywhere, while a PDF written on iOS 26.4 opens correctly on iOS 27.0. How to reproduce: Create a 16-bpc image with UIGraphicsImageRenderer (preferredRange = .extended, or the default format on a wide-color device). Add a PDFAnnotation subclass whose draw(with:in:) draws that image with context.draw(cgImage, in: bounds). Call dataRepresentation() and reopen the result. Current workaround: Create the image with an 8-bpc standard-range format before drawing it in the annotation: let format = UIGraphicsImageRendererFormat.preferred() format.preferredRange = .standard // 8 bpc, sRGB let renderer = UIGraphicsImageRenderer(size: size, format: format) With this, the declared bit depth and the data length match, and the PDF is valid on iOS 27.0. However, this gives up 16-bpc / wide-color output, so I would prefer a solution that keeps the original image quality. Possibly related: FB24882188 / FB24843022 (iOS 27 regression in PDFAnnotation subclasses that override draw(with:in:)). Questions: Does anyone know a way to avoid this issue without downgrading the image to 8 bpc? For example, a different way to create or attach the annotation appearance so that PDFKit on iOS 27 writes the 16-bpc data correctly. Has anyone else seen this, or confirmed whether it is fixed in a later iOS 27 release?
Replies
2
Boosts
0
Views
253
Activity
1w
Can an App Clip share an image to Apple Notes through the share sheet?
My App Clip shows an image, and I need that image to end up in Apple Notes as a new note with as few taps as possible. The plan is to present UIActivityViewController with the image, then the user taps Notes, then Save. I know clips can’t use PhotoKit, so “Save Image” is likely out. What I can’t find documented is whether Notes, or any other app’s share extension, still shows up in a clip’s share sheet and actually saves. Has anyone tried this? I don’t have a paid account yet to test it myself. If someone could run a one-file test clip, I can send the code.
Replies
0
Boosts
0
Views
79
Activity
1w
iOS 26.6.2: explicit Call Directory block bypassed after prior outgoing interactions
An explicitly blocked cellular caller continues to ring on iOS 26.6.2 (23G90). The number was previously saved and contacted. After removing it from Contacts and deleting its visible Recents entries, blocking still fails. We reproduced this with a minimal Call Directory extension containing exactly one bundled number. It uses no App Groups, shared storage, ranges or identification entries, and does not read isIncremental. Logs from 19 October 2026, IST: 08:03:01.701 — Apple’s Call Directory service: Added 1 phone number blocking entries 08:03:01.708 — Extension completion: expired=false 08:03:15 — Incoming cellular call from the configured test number communicationtrustd: Outgoing interactions found communicationtrustd: No remaining handles, returning trustScores callservicesd: shouldBlock: NO shouldSilence NO The call rings despite successful loading. Is there a supported API or entitlement allowing an explicit block to override prior-interaction precedence? Which retained interaction source could remain after Contacts/Recents deletion? We have a minimal reproduction project and sysdiagnose. Please advise how to provide them privately for engineering investigation.
Replies
0
Boosts
0
Views
58
Activity
1w
URGENT: Muse is AUTOMATICALLY blocked by Screen Time API whenever Facebook is blocked, 100% of the time with no workaround for users or developers
PLEASE ADDRESS ASAP: Muse is #1 on the App Store and Facebook is one of the most blocked apps for Screen Time. This is affecting a vast number of people. Description: When a user blocks the Facebook app in any screen time app, iOS automatically blocks Meta's Muse app too. Every single time. There is no way for the user or the developer to prevent it, allowlist it, or even detect that it happened. Muse shows Apple's generic blocked-app "Restricted" screen instead of the screen time app's own design, so the user cannot tell who blocked it or why. This is the worst possible combination of apps: Facebook is one of the most-blocked app across screen time apps. Muse ("Muse from Meta") is currently the #1 app on the App Store. A huge and fast-growing number of users block Facebook and silently lose the world's most popular new app. Muse launched Sept 8, 2026 and adoption is still climbing -- the affected population grows every day. There is NO workaround whatsoever: Users cannot allowlist Muse: it does not appear in Settings > Screen Time > Always Allowed. Developers cannot prevent it: the Screen Time API offers no opt-out; the extra block is applied by iOS itself. Developers cannot detect it: Muse's token (listed separately in FamilyActivityPicker) corresponds to no real identity anywhere else. Developers cannot customize it: their ShieldConfiguration is never consulted -- Muse gets Apple's generic shield UI. Users cannot even block Muse on purpose: shielding Muse's own token is a silent no-op. Screen Time usage statistics are also wrong -- Muse usage is recorded as "Facebook." This Screen Time bug renders screen time apps effectively unusable if users want to block Facebook and use Muse, which is extremely common. How can we get this addressed as soon as possible? Feedback Assistant ticket: https://feedbackassistant.apple.com/feedback/25019832
Replies
7
Boosts
8
Views
507
Activity
2w
WeatherKit JWT error (WDSJWTAuthenticatorServiceListener Code 2) on a new App ID with capability and app service both enabled
Every WeatherKit request from my app fails within 0.4 to 2.4 seconds on two physical devices (iPhone 15 Pro and iPad Air 11-inch M3, both iOS/iPadOS 27.0.1, Xcode 27.0): Error Domain=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors Code=2 "(null)" The call is WeatherService.shared.weather(for: location, including: .hourly(startDate: start, endDate: end)). Team ID 8B44CZ9923, bundle ID io.github.rsutcliffe.nightwatch.phone (an explicit App ID created by Xcode automatic signing on 14 October 2026). What I have checked, following the answer in https://developer.apple.com/forums/thread/835229: WeatherKit is enabled as a capability on the App ID (Capabilities tab) and as an app service (App Services tab). com.apple.developer.weatherkit is in the signed app's entitlements and in the embedded provisioning profile. The Program License Agreement update issued on 13 October was accepted on 14 October. I unticked WeatherKit on the App ID, saved, re-ticked it and saved, deleted the cached provisioning profile so Xcode created a new one, reinstalled and retested. Both devices were restarted. The failure is identical on both. Another App ID on the same team works with WeatherKit. This looks like https://developer.apple.com/forums/thread/786126 and https://developer.apple.com/forums/thread/829512, where the settings were also correct. Can WeatherKit token registration for this App ID be checked or reset on the server side? Is there anything else I should verify?
Replies
1
Boosts
0
Views
103
Activity
2w
How to detect an updated asset pack (and its download size) without triggering a download in Apple-hosted Background Assets?
Hello, I’m using Apple-hosted Background Assets to deliver resources for my app. Our design is to download asset packs on demand at app launch. Scenario: An asset pack has already been downloaded to the device. We then upload a new version of the asset pack with the same identifier to App Store Connect. Question: Is there a way to detect that an updated version of the asset pack is available, without actually starting the download? Our goal is to show the user the download size and ask for confirmation before the download begins. What I’ve tried: checkForUpdatesWithCompletionHandler: This immediately starts downloading the updated asset pack in the background, so we can’t show the size to the user beforehand. getAssetPackWithIdentifier:completionHandler: When an asset pack with the same identifier already exists locally, this returns the local asset pack instead of information about the updated version on the server. Background: I’m concerned about App Review Guideline 4.2.3 (ii): If your app needs to download additional resources in order to function on initial launch, disclose the size of the download and prompt users before doing so. https://developer.apple.com/app-store/review/guidelines/#minimum-functionality If there’s no way to obtain the size of an update before it downloads, I’m worried our implementation might conflict with this guideline. Is there a recommended API or approach for this? Or, if updates to already-downloaded asset packs are handled automatically by the system, does this guideline still apply to them? Any guidance would be greatly appreciated. Thank you.
Replies
0
Boosts
0
Views
62
Activity
2w
Open Parent App From ShieldActionDelegate
Hello, I’m building an app that helps people spend less time on social media apps. For that, I make heavy use of Apple’s Screen Time APIs, such as ManagedSettings and FamilyControls. When an app is locked using a ShieldConfiguration, the user has to open my app in order to unlock it (e.g. enter a code). This is very cumbersome because no documented API exists to open the parent app (=my app) from the ShieldActionDelegate (also part of my app) when the user presses a button of the ShieldConfiguration. The ShieldActionDelegate callback just offers three options in its ShieldActionResponse: .none .defer .close .openParentApp is missing. We are working around this limitation by sending a local push notification that the user has to tap on. This has multiple drawbacks: It has to be ensured that notification permission has been granted. It has to be ensured that notifications can be delivered even while focus is enabled. Features such as Apple Intelligence notification summaries and notification prioritization can heavily delay delivering notifications and thus frustrate the user. Neither my users nor myself do understand why this is not possible in a smoother way, at least according to the documentation. There are 3rd party apps that have such functionality, they can directly open their own app from a button press in the Shield, see here: https://apps.apple.com/us/app/applocker-passcode-lock-apps/id1132845904 It would be great if Apple could level the playfield for all developers and document how this is achievable, because technically it clearly is. Thanks a lot and have a great day!
Replies
7
Boosts
1
Views
1.4k
Activity
2w
Bug: AASA file not fetched on app install
~5% of our users when downloading the iOS application from the Apple Store for the first time are unable to enrol a Passkey and experience an error saying the application is not associated with [DOMAIN]. The error message thrown by the iOS credentials API is "The operation couldn't be completed. Application with identifier [APPID] is not associated with domain [DOMAIN]" We have raised this via the developer support portal with case id: 102315543678 Question: Why does the AASA file fail to fetch on app install and is there anything that can be done to force the app to fetch the file? Can this bug be looked at urgently as it is impacting security critical functionality? Other Debugging Observations We have confirmed that our AASA file is correctly formatted and hosted on the Apple CDN. Under normal circumstances the association is created on install and Passkey enrolment works as intended. We have observed that when customers uninstall/reinstall the app this often, but not always, resolves the issue. We also know this issue can resolve itself overtime without any intervention. We have ruled out network (e.g VPN) issues and have reproduced the issue across a number of different network configurations. We have ruled out the Keychain provider and have reproduced it across a variety of different providers and combinations of. We observed this across multiple versions of the iOS operating system and iPhone hardware including the latest hardware and iOS version.
Replies
15
Boosts
3
Views
4k
Activity
2w
Apple CDN not picking up updated apple-app-site-association file (valid, 200, since Oct 2)
Apple's AASA CDN is still serving an old version of our apple-app-site-association file, 10 days after we updated it on our server. Setup App ID: 4572YRV3M6.gr.kathimerini.Kathimerini Entitlement: applinks:www.kathimerini.gr File: https://www.kathimerini.gr/.well-known/apple-app-site-association The site is behind Cloudflare. Change We added this exclude, placed before the /syndromes/* entry: { "/": "/syndromes/gastronomos-prosfora/*", "exclude": true }, { "/": "/syndromes/*" }, What we see Our server returns the new file: HTTP 200, Content-Type: application/json, no redirects, valid JSON. The Last-Modified header is Fri, 02 Oct 2026 07:06:39 GMT. It returns the same response when requested with -A "AASA-Bot/1.0.0". https://app-site-association.cdn-apple.com/a/v1/www.kathimerini.gr still returns the old file without the new rule. A clean install on a test device still uses the old rules. Questions Is there a way to see whether Apple's crawler is failing to fetch our file, and why? Can the CDN copy be refreshed, or is there a typical maximum delay? Is there a Cloudflare or caching configuration known to cause this? Thanks!
Replies
3
Boosts
0
Views
155
Activity
2w
Can a Family Controls app sync a derived daily score to a server?
An app using FamilyControls (.individual) computes a single daily number on device from the user's own DeviceActivity data. Can that number be sent to a server so the user can compare it with friends? No app tokens, bundle IDs, or per-app times would leave the device. Is this allowed under DPLA section 3.3.3(P), which limits sharing usage data "beyond … the individual and their device"?
Replies
0
Boosts
1
Views
186
Activity
2w
Request: Higher-Frequency IMU Access on Apple Watch for Sports Performance Apps
Hi everyone, I’m building a sports performance app for Apple Watch that uses the onboard IMU to analyze swings and impacts in sports like tennis and golf. The goal is to estimate club/racket head speed, ball speed, and shot quality in real time from wrist motion data. With Core Motion, I can currently get deviceMotion updates at ~100 Hz. While this is fine for general movement tracking, the actual ball impact happens much faster — 5–10 ms in tennis and ~0.5 ms in golf. Many of the high-frequency vibration/impact components are missed at 100 Hz, making it hard to directly measure or more accurately estimate certain performance metrics. Questions for Apple / community: 1. Is there a way to access raw accelerometer and gyroscope data at higher sampling rates (e.g., 500–1000 Hz) on Apple Watch? 2. If not, is this due to hardware limitations or an API/software constraint? 3. Are there any research, partner, or beta programs that allow deeper sensor access for sports-science use cases? Even modest increases in IMU sampling could unlock more accurate ball-speed estimates, impact force analysis, and strike-quality detection without needing external sensors — making Apple Watch a best-in-class wearable for precision sports analytics. Happy to share more about the current approach, sample data, and potential use cases if helpful. Thanks, Max
Replies
2
Boosts
0
Views
1.3k
Activity
2w
watchOS CallKit calls: no DTMF keypad, no audio-route picker, no Recents — are these system-gated for third-party providers?
Hi all, I'm building a watchOS VoIP app that places and receives calls through CallKit, with call audio staying on the watch (not routed to the paired iPhone). Calls connect and audio works. But three parts of the system in-call UI that the native Phone app shows never appear for my app, and I'd like to confirm whether this is expected or a misconfiguration on my side. Environment watchOS 26.0, Apple Watch 11 (reproduced on a physical device) Xcode 27.1 Companion watchOS app, calls driven by CXProvider / CXCallController What's missing during an active call No DTMF keypad. The user can't open a keypad from the system call screen, so in-call DTMF (e.g. navigating an IVR) is impossible. No audio-route picker. No control to switch output route (e.g. speaker vs. the default route). No entry in Recents. Completed calls don't appear in the watch's call history. The system call UI is full-screen and in front, so I also can't present my own keypad or route control on top of it. What I've already tried (all public API) // Reported call callUpdate.supportsDTMF = true // Provider configuration config.includesCallsInRecents = true config.supportedHandleTypes = [.phoneNumber] config.maximumCallGroups = 1 // Audio session: route changes programmatically, but adds no user-facing picker try session.setCategory(.playAndRecord, mode: .voiceChat) try session.overrideOutputAudioPort(.speaker) // Never invoked — no keypad exists to generate the action func provider(_ provider: CXProvider, perform action: CXPlayDTMFCallAction) { ... } None of these make the keypad, the route picker, or a Recents entry appear. The behavior is identical regardless of these values, which makes me suspect these controls are exposed only for the native telephony/relay call path, not for third-party CXProvider calls on the watch. Questions Are the in-call DTMF keypad, audio-route picker, and Recents entry available to third-party CXProvider calls on standalone watchOS at all, or are they reserved for the system (relayed cellular / FaceTime) call UI? If not, is there a supported way to present my own keypad or route control during an active CallKit call, given the system call UI is in front? Thanks!
Replies
1
Boosts
0
Views
667
Activity
2w
Supported way to return the user to the app they chose after a pause screen (App Intent from an "App is Opened" automation)
We're building a Screen Time / mindful-pause app for iOS 26–27. The user adds a Shortcuts personal automation "When is Opened" that runs our App Intent. The intent passes the trigger app's Bundle Identifier (from the trigger output) and shows a short pause screen. When the user taps "Continue", we want to take them back into that app — only the one app they chose, only after they tap. Is there a supported API to open another installed app when the user taps Continue, given its bundle identifier from the Shortcuts trigger? A DTS reply in 2024 said there was no supported way (thread 740707). Has anything changed in iOS 26/27? (Related feedback: FB15500695.) If not, is it acceptable to open the chosen app via a URL scheme it registers in its Info.plist, including a third-party sign-in callback scheme, purely to bring it to the foreground? Many apps register no URL scheme. Is there a recommended pattern — e.g. handing control back to Shortcuts so the automation or the "Open App" action opens the trigger app — without the "App is Opened" automation firing again in a loop? What's the recommended way to avoid that re-fire? We currently ignore it for a short time window. A minimal sample project reproduces this (App Intent, pause screen, Continue using UIApplication.open). Happy to share it. Xcode 27.0 (27A266a), iOS 27.0 (24A446).
Replies
0
Boosts
0
Views
146
Activity
2w
Has the iOS system adapted to the time zone policy of British Columbia, Canada?
Has the iOS system adapted to the time zone policy of British Columbia, Canada? If the iPhone's system time zone is set to America/Edmonton, what result should the code below return after adapting? [[NSTimeZone systemTimeZone] isDaylightSavingTime] [[NSTimeZone systemTimeZone] secondsFromGMT] [[NSTimeZone systemTimeZone] daylightSavingTimeOffset]
Replies
1
Boosts
0
Views
185
Activity
2w
Connection problems between Xcode and Apple Watch
Hello! As I try to use Xcode (has happened in versions 16 and 26) and my Apple Watch (has happened with Series 6 and 10), the Devices and Simulators window reports problems connecting to the Watch. Messages vary from "Connecting to Apple Watch" to "Waiting to reconnect: Previous preparation error: the tunnel connection failed while the system tried to connect to the device; client unable to receive tunnel handshake response", or "Apple Watch may need to be unlocked to recover from previously reported preparation errors. Ensure the device is unlocked and near this Mac for better connection quality." The Watch was operational, and on my wrist, so it was unlocked. Any suggestions on how to move beyond this? Thank you!
Replies
7
Boosts
2
Views
957
Activity
2w
iOS 27: system-wide registered fonts disappear from Settings > General > Fonts after every reboot
Hello, We ship a font provider app that installs fonts system-wide on iOS, delivering the font files through On-Demand Resources. Since iOS 27 shipped, customers have been reporting that their installed fonts vanish from the system font list after every restart. I would like to know whether the restore path for system-wide font registrations changed in iOS 27, and what a font provider app is expected to do after a device reboot. Environment iOS 27.0 and 27.0.0 only. We have no reports on iOS 26 or earlier. iPhone 18 Pro and iPhone 18 Pro Max Fonts delivered through On-Demand Resources and registered for system-wide installation using CoreText Steps to reproduce Activate a font in the app. It appears in Settings > General > Fonts. Reboot the device. Without launching the app, open Settings > General > Fonts. The font is gone. The app still shows the font as active, because it keeps its own activation state. Deactivate and reactivate the font in the app. It comes back. Reboot again. It disappears again. This happens on every reboot. It also happens with a single font activated, and it persists after updating or reinstalling the app. Because the font is missing from the system font list, it is also missing in other apps that use system fonts. What we have ruled out Not low storage. These are new devices with plenty of free space. The documented purge trigger for On-Demand Resources is low storage, which does not explain a result this consistent. Not a crash. Our crash data for the affected app version shows no elevated crash rate on iOS 27 compared to iOS 18. Not specific to one font or one app version. Questions Did the restore path for system-wide font registrations change in iOS 27? Are registrations that reference files inside On-Demand Resources still restored at boot? If a font provider app now has to re-register after a reboot, when and how should it do that? There is no natural launch point, since someone may use the font in another app without opening ours first. Is there a supported way for the app to detect that a font it installed is no longer present in the system font list, so it can repair the registration quietly? Context We deliver several thousand fonts this way, and Apple increased our On-Demand Resources limit for that reason (Case-ID 17273913, December 2025). On-Demand Resources is deprecated as of iOS 27. We have separately confirmed that fonts delivered through Background Assets cannot be registered system-wide: registration fails with CTFontManagerErrorDomain code 306, both from the Background Assets container and after copying the files into the app sandbox, because CoreText requires the file to sit inside the app bundle or On-Demand Resources. We have a separate question open about that migration path, so this post is only about the reboot behavior on iOS 27. Happy to provide a sysdiagnose from an affected device and a sample project. Thank you.
Replies
2
Boosts
0
Views
567
Activity
3w