Hey everyone,
I have an app using the screen time api, I've had quite a few reports from users saying that our monitoring features stop working until they open our app. What happens is that activities and schedules set with the device activity monitor seem to disappear. This is something we check on app re-opens and so we schedule them again and that is why the monitoring starts working again.
Of course our current solution is not optimal since our app is mainly passive. Has anyone experienced these kinds of issue ?
Prevent access to the Screen Time API without guardian approval and provide opaque tokens that represent apps and websites.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hey everyone,
I was granted access to Family Controls (Distribution) for my main App ID
The entitlement is visible and enabled in the App ID configuration. I’ve successfully created and used a provisioning profile that injects com.apple.developer.family-controls for the main app. ✅
However, the issue is with an extension target under the same parent App ID and all others
Despite enabling the Family Controls (Development) capability in this extension’s App ID config, every new provisioning profile I generate for the extension fails to include the entitlement.
I’ve confirmed this by:
• Dumping the .mobileprovision with security cms -D → no sign of com.apple.developer.family-controls
• Recreating the profile multiple times (Development and Distribution)
• Ensuring the entitlement is toggled on in the portal
• Validating the parent app profile does include it
⸻
❗Question:
Is there a known issue where Family Controls doesn’t get injected into extension App IDs even after team approval?
Or is there an extra step I need to take to get this entitlement injected properly into provisioning profiles for app extensions?
Hello,
I am unable to figure out how I tell the FamilyActivityPicker whether it should show apps installed on my personal device (to be used with AuthorizationCenter.shared.requestAuthorization(for: .individual)) or apps installed on my child’s device (authenticated their phone via AuthorizationCenter.shared.requestAuthorization(for: .child)).
Is there any parameter or SwiftUI modifier I need to apply?
Otherwise, how does the user or the app know which token belongs to them and which token belongs to their child’s device?
Radar: FB17020977
Thanks a lot for your help!
I was experimenting with the screen time controls to see how it affected an app I am working on and I created a screen time passcode that I later forgot. Any fix? I can't find the "forgot passcode" button anywhere and I am now unable to turn off find my as a result.
Hi everyone,
I’m developing a screen-time and focus app that uses Apple’s Family Controls framework to block distracting apps and reward users through a gamified experience.
Apple approved Family Controls (Distribution) for the main app identifier,
but they did not approve the required extension target (which implements DeviceActivityMonitor, required for the framework to function).
Because of this, I can’t archive or upload the app to TestFlight — and I’ve been stuck in limbo for over 2 months.
This is severely delaying my launch. The app works perfectly, but I can’t release it because the extension wasn’t included in the entitlement approval.
Has anyone else run into this with Family Controls?
Is there any known way to escalate or fast-track approval for additional app IDs or targets?
Would really appreciate any help, advice, or hacks. 🙏
Thanks,
Enzer
Hi everyone,
I'm working on an app for parents and kids where parents can define screen time goals or restrict usage of certain app categories (like social media or games). If the kid follows those rules—for example, by using their device less or avoiding restricted categories—they would earn points or rewards in the app.
I’ve been exploring if the Apple Screen Time API allows developers to access this kind of data (like total screen time, app usage by category, etc.) so that I can track the kid’s behavior and reward them accordingly.
Is it possible to programmatically access this data and implement such a reward system within my app? If so, what’s the best way to get started or which APIs should I look into?
Thanks in advance for your help!
Hi,
I want to track users screen time on websites.
I want to track monitoring of specific website for that user will enter URL , we want to start monitoring and shield after threshold reached.
but DeviceActivityEvent doesn't allow to enter specific URL domain for monitoring .
How should I do monitoring then ?
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Tags:
Family Controls
Screen Time
Hi everyone,
We're using the react-native-device-activity package to implement app blocking via Apple's Screen Time API. The blocking functionality works well: when the user selects apps and taps "Done," those apps get blocked as expected.
However, we're facing an issue with unblocking apps that the user later unselects. Even after the user unchecks some apps and taps "Done" again, those previously selected (now unselected) apps remain blocked and still show the shield.
I'm encountering what appears to be a specific precedence behavior with ManagedSettingsStore.shield and would appreciate some further clarification.
My current understanding is that category-level shields take precedence over individual app allowances.
My test involved...
Using FamilyActivityPicker to select
a single target application (e.g., "Calculator," which falls under the "Utilities" category).
Using FamilyActivityPicker again to select
the category of that target application.
I applied shields using ManagedSettingsStore (named .individual):
store.shield.applicationCategories = .specific(Set([utilitiesCategoryToken]))
store.shield.applications = Set([calculatorApplicationToken])
Result:
The calculator app remains shielded, suggesting that the category-level shield on Utilities overrides the attempt to allow the individual app. I also tried this using a single picker, but received only the category token instead of all application tokens in that category.
Is this observed precedence (where store.shield.applicationCategories effectively overrides store.shield.applications for apps within the shielded category) the intended behavior?
If so, are there any mechanisms available within the main app's capabilities (potentially using a Device Activity Report Extension or Shield Extension) to allow a specific ApplicationToken if its corresponding ActivityCategoryToken is part of the store.shield.applicationCategories set?
Essentially, can store.shield.applications be used to create "allow exceptions" for individual apps that fall into an otherwise shielded category?
Additionally, I mentioned that selecting an entire category in the picker only returns the opaque category token, not any application tokens. Is there any way in which I could return both the category and all application tokens by just selecting the category?
Any insights or pointers would be greatly appreciated!
Hello,
In a new app I am working on I noticed the FamilyActivityTitleView that displays "ApplicationToken" has wrong (black) color when phone is set to light mode but app is using dark mode via override.
We display user's selected apps and the labels are rendered correctly at first, but then when user updates selection with FamilyActivityPicker, then those newly added apps are rendered with black titles.
The problem goes away when I close the screen and open it again. It also doesn't happen when phone is set to dark theme.
I am currently noticing the issue on iOS 18.4.1.
I have tried various workarounds like forcing white text in the custom label style, forcing re-render with custom .id value but nothing helped.
Is there any way how to fix this?
I’m requesting access to the Family Controls API for an iOS app currently in development. I’ve submitted the request through the official form here:
https://developer.apple.com/contact/request/family-controls-distribution
However, after submitting, I receive no confirmation email or support ticket ID. The page only shows a “Thank you for requesting the API” message, and I’m left without a way to track or confirm the request.
This entitlement is essential for my app’s functionality, and I need to move forward with development and testing. Can someone from the Apple team please confirm receipt of the request and provide guidance on the next steps or estimated timelines?
I'm using FamilyActivityPicker to get consent for app/category management, which returns a FamilyActivitySelection object.
I serialize this FamilyActivitySelection object (just applicationTokens and categoryTokens) and pass it to my DeviceActivityMonitor extension via App Group UserDefaults. I am using the JSON encoder/decoder over PropertyList (though both seem to exhibit the same behavior).
After inspecting the FamilyActivitySelection object immediately after it's returned by FamilyActivityPicker in the main app, the application.bundleIdentifier property is consistently nil for every Application object within selection.applications. Similarly, category.localizedDisplayName is nil for ActivityCategory objects. This happens whether "Select All Apps" is used or if apps/categories are selected individually.
I understand that this is the intended behavior due to Apple's user privacy policies. I read on another post that my app can be provided with bundle identifiers and app names within Shield Configuration extensions and Device Activity Report extensions - I'm not sure which ones or how exactly to do this.
I am aware that I can use Label(applicationToken) SwiftUI view to display the app name/icon, but this doesn't give programmatic access to the bundleIdentifier string.
My app will not log or export these bundleIdentifiers outside of its sandbox. My goal is to create mappings to the FamilyActivitySelection with the publicly accessible bundleIdentifiers.
Any guidance, examples, or clarification on the intended workflow for this scenario would be greatly appreciated!
I have filled the form to request for this access, but it has been 15 days now and I haven’t gotten any feedback. Apple Support said the appropriate team will be in contact with me once it has been approved. It’s been 15 days and still nothing. I just want to know how long it would take, and Apple’s WWDC 2025 is around the corner, I was really looking forward to get this done before then.
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Tags:
Developer Tools
Entitlements
Family Controls
I use DeviceActivityCenter to monitor app usage.
For DeviceActivityEvent, I set 30 events, and the threshold of each event increases by 2 minutes:
var events: [DeviceActivityEvent.Name: DeviceActivityEvent] = [:]
for index in 0..<30 {
let threshold = (index == 29)
? DateComponents(hour: 1)
: DateComponents(minute: (index + 1) * 2)
let name = DeviceActivityEvent.Name("\(prefix)|\(index)")
events[name] = DeviceActivityEvent(applications: tokens, threshold: threshold)
}
After reaching the last DeviceActivityEvent, I will restart directly in DeviceActivityMonitor
private func restartMonitoring(activity: DeviceActivityName) {
let center = DeviceActivityCenter()
let currentEvents = center.events(for: activity)
do {
try center.startMonitoring(activity, during: schedule, events: currentEvents)
} catch {
print("Fail: \(error)")
}
}
But I found that after restarting, DeviceActivityEvent will be automatically executed even if I don't use the app.
My iOS version is 18.5
Is there any way to use the screen time API on Mac?
I’m creating an app with the Screen Time API and I would like to know how to make the app show a parental control editing view for parents and a view for child accounts that shows which apps are blocked. How can I do this?
I’m in crisis mode and desperately need advice. Launching in 10 days and just hit a major roadblock.
Background:
Set up developer account under a business name only because we needed the D-U-N-S number when starting development
Have a working app with Family Controls already configured on the main identifier
Yesterday my developer discovered we need Family Controls on 3 additional identifiers for launch
a week ago (terrible timing) I submitted a business name change request thinking it was good housekeeping
The Crisis:
Certificates, Identifiers & Profiles portal is completely locked during business name change processing
Can’t add Family Controls to the 3 identifiers we need for launch
Business name change typically takes 2-4 weeks
Launch is in 10 days
What I’ve Done:
Contacted Apple Developer Support explaining the urgency
Case ID: 102633553000 for the name change request
Desperate Questions:
Has ANYONE successfully cancelled a business name change mid-process for urgent app needs?
Any emergency escalation paths at Apple for launch-blocking issues?
Would creating a new developer account be faster? (Though that seems nuclear)
Any other workarounds I’m not thinking of?
The business name change was purely administrative - nothing structural changes. But these identifier updates are absolutely critical for launch functionality and we didn’t realize they were needed until trying to launch into testflight.
This is our first time so learning a lot the hard way 🫠.
Thanks in advance for any help!
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Tags:
Entitlements
Family Controls
I'm new to the Screen Time API and trying to block custom websites, but I can't get WebDomain tokens to work. When I create a WebDomain like WebDomain(domain: "reddit.com"), the token property is always nil. I have proper authorization and the app works fine for blocking apps, but website blocking just won't work.
I'm confused because I see apps like JOMO that let users type in any website domain and successfully block it using Screen Time API. They have the same 49 domain limit and only ask for Screen Time permission, so they must be using the same API I am. But somehow their WebDomain tokens work and mine don't.
I've tried creating the tokens right after getting authorization and during the FamilyActivityPicker session, but still get nil. Am I missing some setup step or API call that makes WebDomain tokens valid? Any help would be really appreciated since I'm stuck on this.
Hey there! So, I'm trying to see what I'm able to do with the Device Activity Report Extension, and I have a few questions about the following quote:
To protect the user’s privacy, your extension runs in a sandbox. This sandbox prevents your extension from making network requests or moving sensitive content outside the extension’s address space.
In particular, what constitutes the address space for this extension?
Can I save data to a UserDefaults object that only the extension can access? (Apps like Opal allow the user to label apps as "distracting" and "non-distracting", and I'm wondering how they do that!)
From what I've read, I believe it cannot write to a shared app group or model (and I just want to confirm this)
It also seems that there's nothing preventing it from reading data from the main app, so I'm just wondering if it's able to read data from an app group or model with no problem.
Thanks in advance!
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Screen Time
Privacy
Hi All,
Like many others I'm a little confused with gaining access to the family controls capability.
Our app is ready to push to testflight, and we sent the request to apple last week. However only learning today that we need to request for the shield extension as well.
I wanted to ask what the expected timeline is for being approved?
I've seen posts here saying less than a week, and some people having to wait longer than 6 weeks.
Any advise or guidance on getting approved smoothly & swiftly would be highly appreciated