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:
<key>com.apple.developer.family-controls</key> <true/> <key>com.apple.developer.device-activity</key> <true/>
• 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!
A Family Controls app typically consists of an app and some embedded app extensions. They all need the Family Controls entitlement (com.apple.developer.family-controls
).
IMPORTANT If you’re trying to use other entitlements, you are probably confused. See Determining if an entitlement is real.
Your access to the Family Control entitlement is controlled by the Family Controls capability. That capability is available to all developers for development but is managed by Apple for distribution. If you’re not sure whether you have distribution access, check using the process described in Finding a Capability’s Distribution Restrictions.
If you need the capability for distribution, apply using the form linked to from the documentation. When you get to the submission form, you’ll see that it has a field where you enter your bundle ID. That’s because the distribution capability is typically restricted to specific apps.
You can only enter one bundle ID into that field. However, you actually need the capability for multiple bundle IDs, namely, your app and its various embedded app extensions. So, you must fill in the form multiple times, once for each bundle ID.
My advice is that you fill in the form once for the main app, record your answers to the various questions, and then use exactly the same answers for your other submissions, only changing the bundle ID each time.
Obviously this process is less than ideal and we already have a bug on file requesting improvements here (r. 158255401).
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"