Hi all,
I’m working on a Screen Time app using Managed Settings and ShieldConfiguration, and I’ve run into an issue where screen time is still being counted while the shield is shown — even when the user never interacts with the underlying app content.
This happens both when I use the default shield and when I configure a custom ShieldConfiguration with a ShieldAction. As long as the shield is visible, the time appears to count toward the app’s usage. For example, if I leave the shield up for 20 minutes, Screen Time logs it as 20 minutes of app usage — even if no content is accessed behind the shield.
Is this expected behavior? Is there a way to prevent Screen Time from counting time while the shield is shown?
Any insights or workarounds would be greatly appreciated!
Thanks,
Connor
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
Hello,
I have noticed that the ShieldConfiguration is only requested when opening a target app, and never when the application token is moved to a different shield while the target app remains in foreground.
This causes problems because many times the wrong ShieldConfiguration is displayed (recycled) instead of requesting a new ShieldConfiguration.
This bug has been around since the introduction of the Screen Time API in 2020 and is has not been addressed.
Bug reports:
FB14237883
FB17902392
Please fix asap!! Not acceptable to have bugs not being addressed for more than 5 years.
Most concerning: This is still reproducing on iOS 26 beta 7!!
Thanks a lot for your help.
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Managed Settings
Screen Time
Hello everyone,
I’ve been stuck for weeks on an issue with Family Controls + Device Activity entitlements in my iOS app, and Apple Developer Support has not provided a solution so far. I’m hoping someone here who has successfully implemented Family Controls + Device Activity can point me in the right direction.
About the App
• The app is a Digital Wellbeing app called Breakloop.
• It lets users select apps they want to block, requires them to complete a positive affirmation before opening those apps, and can re-block apps after a set time (e.g., 10 minutes).
• This functionality exactly matches the purpose of Family Controls and Device Activity APIs.
What Works So Far
• Family Controls capability is enabled in the main app target in Xcode.
• We have valid Apple Developer certificates (Apple Development) and a team account.
• The main app builds and runs fine when using Family Controls alone.
• We have App IDs for:
• bl.Breakloop (main app)
• bl.Breakloop.BreakloopMonitorExtension
• bl.Breakloop.BreakloopShieldConfigurationExtension
The Problem
The provisioning profiles for the extension targets (BreakloopMonitorExtension and BreakloopShieldConfigurationExtension) do not include the com.apple.developer.device-activity entitlement even though:
• The App IDs in the Developer Portal have Family Controls (Development) enabled.
• The extensions have the correct entitlements file with both:
com.apple.developer.family-controls
com.apple.developer.device-activity
• Xcode Signing & Capabilities points to the correct provisioning profile + certificate.
Because the provisioning profiles don’t include the entitlement, the build fails with:
Provisioning profile doesn't include the com.apple.developer.device-activity entitlement.
What Apple Support Said
Apple Support told me:
• “Family Controls grants access to Device Activity.”
• They cannot enable it manually or guarantee that profiles will include the entitlement.
• They sent links to the documentation but no further assistance.
What I Need Help With
1. Has anyone successfully built extensions using Family Controls + Device Activity?
2. Do I need to request any additional approval for Device Activity, or should it appear automatically once Family Controls is enabled?
3. Is there a known Xcode or Apple Developer Portal configuration issue that causes the entitlement to be missing in provisioning profiles?
4. Any working example of a project setup that uses Family Controls + Device Activity in extensions would be extremely helpful.
Extra Info
• We use the latest Xcode + iOS SDK.
• Tried recreating certificates, profiles, and App IDs multiple times.
• Followed Apple’s docs for Family Controls + Device Activity exactly.
I would greatly appreciate any guidance, especially from someone who has this working with iOS app extensions.
Thank you!
Topic:
Code Signing
SubTopic:
Entitlements
Tags:
Entitlements
Family Controls
Device Activity
Screen Time
Hi - appreciate your help in advance!
Building a simple habit tracking app.
I got approval for FamilyControls distribution.
After creating a new provisioning profile with those capabilities enabled, when I try and build in xcode (16.4) using that Profile I get an error stating:
"Provisioning profile "CreateMoreFamilyControlsv2" doesn't include the com.apple.developer.deviceactivity and com.apple.developer.deviceactivity.reporting entitlements"
I've confirmed bundle identifier matches, Team etc
Similarly when i do automatic signing see 3rd screenshot.
Not sure what to do at this point, I've heard deviceActivity is automatically applied when family controls is approved but still running into this issue.
Hi Apple Engineers and fellow developers,
I'm a student developer working on an educational focus management app that helps users hide distracting apps during study sessions. The app consists of:
macOS app: Simple "Hide apps" button that triggers app hidding sessions
iOS app: Uses Screen Time API to temporarily hide selected apps from home screen
Communication: Bonjour networking between Mac and iPhone for session coordination
The Challenge
My app requires two entitlements that aren't available with Personal Developer Teams:
com.apple.developer.family-controls (for Screen Time API)
com.apple.developer.networking.multicast (for Bonjour device discovery)
Current Error Messages
text
Cannot create a iOS App Development provisioning profile for "focuser.focuser-app".
Personal development teams, including "My Name", do not support the
Family Controls (Development) capability.
Provisioning profile doesn't include the com.apple.developer.family-controls
and com.apple.developer.networking.multicast entitlements.
My Question for Apple Engineers
Is there any legitimate way to test these privacy-sensitive APIs on my own devices for educational/learning purposes without purchasing the $99/year Apple Developer Program membership?
I understand the security reasons behind these restrictions, but as a student just learning iOS development, it creates a significant barrier to experimenting with these technologies.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Entitlements
Network
Family Controls
Bonjour
class ShieldActionExtension: ShieldActionDelegate {
override func handle(action: ShieldAction, for application: ApplicationToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
// Handle the action as needed.
switch action {
case .primaryButtonPressed:
if let url = URL(string: "blockfocusapp://") {
let extensionContext = NSExtensionContext()
extensionContext.open(url, completionHandler: nil)
}
//
completionHandler(.defer)
case .secondaryButtonPressed:
let userDefaults = UserDefaults(suiteName: "group.in.appsquare.FocusApp.shieldExt")
userDefaults?.set(false, forKey: "shouldOpenMainApp")
completionHandler(.defer)
@unknown default:
fatalError()
}
}
override func handle(action: ShieldAction, for webDomain: WebDomainToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
// Handle the action as needed.
completionHandler(.close)
}
override func handle(action: ShieldAction, for category: ActivityCategoryToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
// Handle the action as needed.
completionHandler(.close)
}
}
I want to be able to open my app from ShieldActionExtension
Hi everyone,
I submitted this feature request through Apple’s Feedback Assistant and wanted to share it here, because many families run into the same issue and Apple prioritizes features based on the number of reports they receive.
Current limitation:
Screen Time only allows one single Downtime period per day for child accounts.
For families with separate school hours and bedtime, this is very impractical.
My real-world use case:
• Downtime 1: 08:00–13:00 (school)
• Downtime 2: 20:00–06:00 (bedtime)
Both serve completely different purposes, but are not possible to combine with the current system.
My suggestions to Apple:
Support multiple Downtime periods per day for child accounts.
Allow custom exceptions per Downtime block (e.g., allow Phone app).
Provide more flexibility overall for families using Screen Time.
If you would benefit from this too, it would be great if you could submit the same request via the Feedback app – the more reports Apple receives, the higher the chance for implementation.
My Feedback ID: FB21265678
Thank you! 🙏
Hallo zusammen,
ich habe über die Feedback-App einen Vorschlag an Apple eingereicht und wollte ihn hier teilen, weil viele Familien dasselbe Problem haben und Apple mehr Rückmeldungen braucht, um das Thema zu priorisieren.
Aktuelles Problem:
In Bildschirmzeit kann für Kinder aktuell nur eine einzige Auszeit pro Tag eingerichtet werden.
Für Familien mit getrennten Schul- und Schlafenszeiten ist das extrem unpraktisch.
Mein Anwendungsfall:
• Auszeit 1: 08:00–13:00 (Schule)
• Auszeit 2: 20:00–06:00 (Schlafenszeit)
Beides erfüllt unterschiedliche Zwecke, ist aber nicht kombinierbar.
Mein Vorschlag an Apple:
Mehrere Auszeiten pro Tag für Kinderaccounts.
Pro Auszeit eigene Ausnahmen festlegen (z. B. Telefon erlauben).
Allgemein mehr Flexibilität im Screen-Time-System für Familien.
Wenn ihr das ebenfalls hilfreich findet, wäre es super, wenn ihr es auch über die Feedback-App meldet – je mehr, desto besser.
Feedback-ID meines Vorschlags: FB21265678
Danke euch! 🙏
Topic:
Business & Education
SubTopic:
Device Management
Tags:
Device Management
Family Controls
Screen Time
We're building a parental control app using FamilyControls (.child authorization). Our architecture:
Parent sends pause command → Firestore + FCM
Child receives push → NotificationService Extension triggers main app
Main app sets ManagedSettings Shields
Problem: If child disables Notifications in Settings and force-quits the app, we cannot enforce Shields.
What we've tried:
Firestore Realtime Listener (works only when app is running)
DeviceActivityMonitor (intervalDidStart/End only triggers at schedule boundaries, eventDidReachThreshold requires explicit app selection via FamilyActivityPicker)
Question: Is there a recommended approach for parental control apps to reliably enforce Shields when the child has disabled notifications? Or is this a known limitation?
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Managed Settings
Screen Time
A screen time app I'm making has started telling users that their limit was reached even when they're far below their limit for the day (sometimes even at 0 minutes for the day).
This issue only started happening after upgrading my software to iOS 26.2.
Is this happening to anyone else? If so how have you found any solutions or does anyone know of any changes that could be causing this? Any help would be appreciated.
Hi everyone,
I'm hoping someone can share their experience or offer advice on entitlement request timelines.
I previously had two bundle IDs approved for an app I'm testing via TestFlight - both were approved within a few days. I recently submitted a request for a third bundle ID (JMSHRM8W5J), and after realizing I may not have included enough detail, I submitted a follow-up request (XS2QYC59UU) with more context.
It's now been almost three weeks, which is significantly longer than my earlier approvals - though I recognize some of that time included the holidays.
A few questions for the community:
Has anyone experienced longer wait times for additional entitlements on an existing project (with approved entitlements)?
Did submitting a second request help or potentially slow things down?
Is there anything I should include in a request to improve chances of quick approval?
Any insight would be appreciated. Thanks!
Topic:
Code Signing
SubTopic:
Entitlements
Tags:
Family Controls
Device Activity
Managed Settings
Screen Time
I'm experiencing a contradictory validation issue with DeviceActivityReportExtension that creates an impossible situation:
The Problem:
Without NSExtensionPrincipalClass in Info.plist → App Store Connect rejects upload with: "Missing Info.plist values. No values for NSExtensionMainStoryboard or NSExtensionPrincipalClass found"
With NSExtensionPrincipalClass → Local install fails with: "defines either an NSExtensionMainStoryboard or NSExtensionPrincipalClass key, which is not allowed for the extension point com.apple.deviceactivityui.report-extension"
Setup:
Extension point: com.apple.deviceactivityui.report-extension
Using SwiftUI with @main attribute and DeviceActivityReportExtension protocol
Xcode 16.2, iOS 17.6 deployment target
Code structure:
@main
struct SpoolReport: DeviceActivityReportExtension {
var body: some DeviceActivityReportScene {
// Report scenes here
}
}
The extension builds and runs perfectly without NSExtensionPrincipalClass, but cannot be uploaded to App Store Connect. Adding the key allows upload but breaks local installation.
Is this a known issue? Is there a workaround or correct Info.plist configuration for DeviceActivityReportExtension?
Thank you!
Since the iOS 26.2 update, we have been experiencing anomalous behavior with the DeviceActivityMonitor extension when utilizing the ScreenTime API. Specifically, we are receiving the eventDidReachThreshold event within a few minutes of initiating monitoring, despite configuring a high usage limit.
The process of turning off Screen Time -> restarting the device -> turning on Screen Time does not work.
Any ideas?
Thanks
Filed Feedback Assistant: FB21560904
Hi, Submitted Family Controls entitlement requests yesterday for a
digital wellness app (main app + 3 extensions).
For those who've been through this:
How long did approval take?
Did Apple ask for more info?
Any tips?
Thanks!
Here is a post to gather findings in case anyone found out what this new API does.
Apple did not include any comments or documentation and due to the generic naming we don't know what this API might does.
https://developer.apple.com/documentation/deviceactivity/deviceactivityauthorization?changes=latest_major
I want to display device activity reports for particular selected apps. for getting a daily basis app uses time. Now, what is happening? there are 10 apps selected from the family activity picker but some apps are displayed in the list. I need all 10 apps or more that I will choose from the family activity picker. The bellow code is used for fetching reports.
var body: some View {
VStack {
DeviceActivityReport(context, filter: filter)
}
}
bellow code is used for the filter
@State public var filter = DeviceActivityFilter()
init(selectedApps: Set<ApplicationToken>, selectedCategories: Set<ActivityCategoryToken>, selectedWebDomains: Set<WebDomainToken>) {
self.selectedApps = selectedApps
self.selectedCategories = selectedCategories
self.selectedWebDomains = selectedWebDomains
self.filter = DeviceActivityFilter(
segment: .daily(
during: Calendar.current.dateInterval(
of: .weekOfYear, for: .now
)!
),
users: .all,
devices: .init([.iPhone]),
applications: selectedApps,
categories: selectedCategories,
webDomains: selectedWebDomains
)
}
You can see we selected 3 apps from family activity picker but we getting 2 apps from DeviceActivityReport extension
following code is for device activity report extension
let context: DeviceActivityReport.Context = .totalActivity
// Define the custom configuration and the resulting view for this report.
let content: (ActivityReport) -> TotalActivityView
func makeConfiguration(representing data: DeviceActivityResults<DeviceActivityData>) async -> ActivityReport {
// Reformat the data into a configuration that can be used to create
// the report's view.
var res = ""
var list: [AppDeviceActivity] = []
let totalActivityDuration = await data.flatMap { $0.activitySegments }.reduce(0, {
$0 + $1.totalActivityDuration
})
for await d in data {
res += d.user.appleID!.debugDescription
res += d.lastUpdatedDate.description
for await a in d.activitySegments{
res += a.totalActivityDuration.formatted()
for await c in a.categories {
for await ap in c.applications {
if let apptoken = ap.application.token {
let appName = (ap.application.localizedDisplayName ?? "nil")
let bundle = (ap.application.bundleIdentifier ?? "nil")
let duration = ap.totalActivityDuration
let numberOfPickups = ap.numberOfPickups
let app = AppDeviceActivity(appToken: apptoken, id: bundle, displayName: appName, duration: duration, numberOfPickups: numberOfPickups)
list.append(app)
}
}
}
}
}
return ActivityReport(totalDuration: totalActivityDuration, apps: list)
}
I have noticed that when I select the app token of the youtube app to be blocked via a ManagedSettingsStore, the youtube website is blocked as well (which is a good and intended behavior IMO).
But how do I know in the ShieldConfigurationDataSource’s override func configuration(shielding webDomain: WebDomain, in category: ActivityCategory) -> ShieldConfiguration to which ManagedSettingsStore the WebDomain’s token is related?
We use different ManagedSettingsStores for different block purposes, which differentiate in their ShieldConfiguration.
Thanks a lot and have a great day!
Is it possible to change the title "Choose Activites" and also remove the search on the FamilyActivityPicker?
I've successfully obtained Distribution entitlements for Family Controls. However, this seems to only apply to the main target/identifier and not the extensions, like DeviceActivityMonitor, ShieldConfigurationDataSource, or ShieldActionExtension.
Did I perhaps fill out the form with the wrong bundle ID? If I go to "Certificates, Identifiers & Profiles", my main identifier for the app has the Distribution entitlement. But the extensions and the wildcard don't. This means that trying to create an archive results in the following two errors, each repeated twice:
Provisioning profile failed qualification (Profile doesn't support Family Controls (Development))
Provisioning profile failed qualification (Profile doesn't include the com.apple.developer.family-controls entitlement)
Note that my entitlement files are set up correctly.
Do I need to fill out the form with a wildcard instead? Or am I doing something wrong? Thank you.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Entitlements
Family Controls
Hi there,
I am planning an app that requires use of the Family Controls Entitlement to access data on the user's screen time.
I understand that this has to be requested from Apple before it can be used in production.
I have found the following form to request approval, but it requires an App and bundle ID, which suggests that approval can only be requested after the app has been developed.
https://developer.apple.com/contact/request/family-controls-distribution
I'd like to avoid the situation where I spend a lot of time on developing the app, only to find out that the Family Controls Entitlement will not be granted for my use case.
Is there any way that I can request provisional pre-approval for my app? Perhaps based on an app description and some mockups? Or, at least some idea of whether my particular use case is likely to be approved?
Thanks.
I am developing a parental control app using Apple’s Screen Time API and FamilyControls Framework. My goal is to allow parents to remotely block apps on their child’s device from their own phone. Does anyone have any idea how I can achieve that?
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Managed Settings