Post

Replies

Boosts

Views

Activity

Reply to DeclaredAgeRange framework new cases and properties cause runtime crash with missing symbol
@DTS Engineer Tested with Xcode 26.2 downloaded from the App Store, against iPhone 17 Pro running 26.1 (23B85) Xcode Version 26.2 (17C52) So this property wasn't tested. I haven't touched PermissionKit yet so I wasn't actively testing this, however my wrapper library code still fails for this property too and causes a runtime crash due to symbol not found. AgeRangeService.ParentalControls.significantAppChangeApprovalRequired 55C0A89C-7970-4C69-B5D3-1E6873C6EF2B-diagnostic.json Here is some offending code, assumes iOS 26 minimum target: extension ParentalControls { public init(activeParentalControls: AgeRangeService.ParentalControls) { var value: Int = 0 if activeParentalControls.contains(.communicationLimits) { value |= ParentalControls.communicationLimits.rawValue } if activeParentalControls.contains(.significantAppChangeApprovalRequired) { value |= ParentalControls.significantAppChangeApprovalRequired.rawValue } self.rawValue = value } }
3m
Reply to Age verification implementation in IOS Apps
Please familiarize yourself with the Developer News page. https://developer.apple.com/news/ As of today, Apple has posted two articles about this topic: New requirements for apps available in Texas Next steps for apps distributed in Texas I'd highly encourage watching these WWDC25 videos a few times to catch all the details: Deliver age-appropriate experiences in your app - WWDC25 Enhance child safety with PermissionKit - WWDC25
1w
Reply to Declared Age Range: How to support age verification on iOS < 26?
This is not legal advice, nor a statement from Apple. I will share what I'm going to do in my apps and recommend to others. How I interpret 121.056 (B) (1) is basically, use the signals when they're available. If they're not available, you can't use them. You can't do the impossible. So if you have an app update that supports iOS 26, implement it there, and < 26 you simply can't. As a developer, it is impossible to use the age signals provided by the App Store if they don't exist. If you're not comfortable with this approach, file feedback asking for support on devices < 26. Hypothetically, if Apple were to add support to, say iOS 18, it would still be something like iOS 18.8.x or higher. I am closely following the OS Usage page and waiting for an update to show the adoption of 26. https://developer.apple.com/support/app-store/ For my specific usage, I'm moving my apps to 26+ for my updates. However, I have apps that include watch extensions, and an Apple Vision Pro target. This presents its own challenges. I posted quite extensively about the framework being unavailable on several Apple platforms. You can read more about those gaps here: https://developer.apple.com/forums/thread/808139
1w
Reply to Feedbacks for DeclaredAgeRange - missing platform support
Regarding feedback FB20954846 for App Clip support, I got a message from Apple saying it is fixed. I can now compile, and code sign for an App Clip using the DeclaredAgeRange API. Great. Now that I can get past the compiler failure I'm running up against a new issue. When installed via TestFlight, an App Clip throws that the age range is unavailable. In the console app it looks like the App Clip is still prohibited from calling the system functionality: default PerformanceOrganizer AppClip 18:36:39.200071-0600 (501) Failed to fetch persona: got error from remote proxy: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.mobile.usermanagerd.xpc was invalidated: Connection init failed at lookup with error 159 - Sandbox restriction." UserInfo={NSDebugDescription=The connection to service named com.apple.mobile.usermanagerd.xpc was invalidated: Connection init failed at lookup with error 159 - Sandbox restriction.} error PerformanceOrganizer AppClip 18:36:39.200108-0600 (501) personaAttributesForPersonaType for type:0 failed with error Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.mobile.usermanagerd.xpc was invalidated: Connection init failed at lookup with error 159 - Sandbox restriction." UserInfo={NSDebugDescription=The connection to service named com.apple.mobile.usermanagerd.xpc was invalidated: Connection init failed at lookup with error 159 - Sandbox restriction.} For good measure, the same behavior happens for both installed via Xcode as well as TestFlight. Tested on iOS 26.1 public. Feedback updated with more details. For the other developers out there trying to add Age Assurance to your App Clips, are you running into the same issues?
1w
Reply to Cancel 'Share age range in app'
While l can't speak to the consequences of changing your Apple Account's age setting, changing the age setting will clear all statuses. This is based on my testing with iOS 26.1 and 26.2 beta 3. This might be as designed, but might also be unexpected. I submitted a feedback related to permission management as it is what I would describe as a one-way trip right now. FB21024854 - DeclaredAgeRange / Age Range for Apps: Cannot manage or even view age range for apps in Settings > Apps > AppName as described in learn more in main Age Range for Apps screen Please see the attached screenshots. In the age range for apps “learn more” it clearly directs the user that they can manage a per-app level age range sharing election in the apps settings. This is simply not true. When I go to my apps settings, there is nothing there for age range. Additionally, I cannot even edit the sharing status from the main menu under the Apple account screen. I have a separate feedback for that already. Something is broken or not implemented.
Topic: App & System Services SubTopic: Drivers Tags:
1w
Reply to Incorrect Step Count from Apple HealthKit Data
As an experiment, I would query the historical pedometer data from Core Motion (7-days history, I think), and compare that to the steps you're seeing in Pedometer++. In the fitness app I wrote, the device automatically captures data from the pedometer and saves it to Apple Health / HealthKit, the question is, is there any quality of service going on to screen out bad or otherwise data from the pedometer? I can't speak to the app authors implementation, but he could be using the pedometer API in conjunction with HealthKit. The app does request access to motion permissions, so it is a real possibility. Presumably Pedometer++ is just using the statistics query but you'd have to ask them and see if they'd share details if you're using this as a point of reference.
Jul ’25
Reply to Statistics collection query first result returned is wrong
@Jaroslav_the_healthy My guess is that this is due to your predicate options. Play with the .strictStartDate and .strictEndDate. As an experiment, change from .strictStartDate to .strictEndDate and see if the issue goes to the tail of the data instead. Look at the actual basal samples saved in health kit near the hour mark and I bet you will find some that are overlapping before and after the hour. At least that is where I would start looking.
Jul ’25
Reply to Fitness app not now show saved routes
@haozes you didn't mention if this was beta or not, so I can't speculate how related this is. I have noticed on iOS26 beta 2, that workout route builder does not let me insert route data during an active HKWorkoutSession and collection started HKLiveWorkoutBuilder. If Apple is using the same API in the fitness app, and you're on beta, perhaps these are two in the same? Just in case: https://developer.apple.com/forums/thread/791715 FB18603581 - HealthKit: HKWorkoutRouteBuilder insert call within CLLocationUpdate task never returns
Jul ’25
Reply to What’s the expected frequency of HealthKit enableBackgroundDelivery: HKCategoryTypeIdentifier.sleepAnalysis
@Quappi, I do not have an answer, however, because the type is a HKCategoryType and the frequency of the data being saved should be low, it would be reasonable to assume that .immediate would behave the way you expect--immediate when on device. I seem to recall the behaviors of some of the quantity samples are these buckets as you have described: immediate 10-minute hourly daily weekly I don't remember if the 10-minute bit was knowledge from a WWDC lab, or trial and error experimentation with workout APIs. Ever notice how Apple Watch will ask you if you're working out roughly after 10 minutes of walking?... HKQuantityTypes have an aggregation style property, there is no reason that health types couldn't have a property to represent the fastest allowed background update frequency. FB18604790 - HealthKit: Create new API for developers to check the minimum allowed update frequency for background updates, or robust documentation per-sample type #feedbackfriday
Jul ’25
Reply to CloudKit CKModifyRecordsOperation resulting in undocumented error "Internal Error" (1/3001); "MMCSEngineCreate failed"
If anyone at Apple is looking, or others are curious and want to try and reproduce this and share, I believe I figured out the cause. Background: So my app captures MetricKit payloads and saves them into CoreData / SwiftData locally. After a period of time, I ship the payloads to CloudKit. This works for all of my other apps as I mentioned, my container entitlements are setup just fine, this new app has worked in the past, etc. Cause: It appears that when I use Xcode to download the container of my app, and then restore it, that there is some residual data in this process that causes the issue. In the container I found a few directories called MMCS in CloudKit and deleted them, then restore the container to my device(s). After doing this, it worked. It looked something like this: Container > AppData > CloudKit > Random Folder Identifier 1 > MMCS Container > AppData > CloudKit > Random Folder Identifier 2 > MMCS For safe measure I deleted other directories which was likely an unnecessary action as they appear to be artifacts of other frameworks, such as WeatherKit (Caches/weather-data.db and Caches/geocode_wk.db). This is still an issue however, because many developers will take snapshots of their files this way to perform Core Data / Swift Data migration tests on their devices.
Feb ’25
Reply to NSLocationRequireExplicitServiceSession
Checkout this sample code: https://developer.apple.com/documentation/corelocation/monitoring-location-changes-with-core-location Associated with the talk here: https://developer.apple.com/videos/play/wwdc2023/10147 Referenced from Adam's WWDC24 talk here: https://developer.apple.com/videos/play/wwdc2024/10212 Code change necessary Add NSLocationRequireExplicitServiceSession as a Boolean to your app's Info.plist as the sample code shows.
Feb ’25
Reply to Granularity/Accuracy of delivered locations with live updates
I haven't been able to find any supporting evidence that this is possible given the current API. FWIW, Apple likes Feedback. @alpennec @michael.h I suggest you file your own, feel free to mention mine so they can mark as related. Here is my Feedback # FB16218331 - Core Location: CLLocationUpdate doesn't have mechanism for influencing the 'filter accuracy' like CLLocationManager does - add functionality to API FB16226614 - Core Location: CLLocationUpdate doesn't have mechanism for influencing the 'filter distance' like CLLocationManager does - add functionality to API
Jan ’25
Reply to Unable to get Metric Kit logs on iOS devices for past 24 hours on Test Flight Build
I have noticed a significant drop out in metric payloads on my local test devices since iOS 18. I am not reliably getting payloads either. I plan to visualize my payload reports over the last 6 months to show the count for my devices bottoming out around mid September. FB15461298 - MetricKit: Production issue / regression with iOS 18 - Significant dropout or metric payloads being generated since 18.0 - nearly no reports I will share my visuals here too as a reference once I have them.
Oct ’24