Contents

Configuring Family Controls

Add the Family Controls entitlement to enable parental control features in your app and its Screen Time API app extensions.

Overview

The Family Controls framework enables your app to use Screen Time API app extensions to implement parental controls through the Managed Settings and Device Activity frameworks. For more information on the Screen Time APIs, see Screen Time Technology Frameworks.

To enable the Family Controls functionality, add the capability to your target. Xcode automatically updates your app target’s entitlements file to include the com.apple.developer.family-controls entitlement key set to true, and you can access the entitlement through the Apple Developer Program during development. Configure it for the App ID of your app and its Screen Time API app extensions under the Capabilities tab in Certificates, Identifiers & Profiles.

Add the Family Controls capability to your target

To add the capability to your app’s target, follow the steps in the Add a capability section of Adding capabilities to your app, then select Family Controls from Xcode’s Capabilities library. If you add a new target in your Xcode project using a Screen Time API extension template such as Device Activity Monitor, Device Activity Report, Shield Action, or Shield Configuration, Xcode enables Family Controls automatically. This capability is available on iOS and visionOS. [Image]

If you remove the Family Controls capability in Xcode, disable this capability for your app’s App ID in Certificates, Identifiers & Profiles, regenerate your provisioning profile, and re-sign your app with this profile.

Add the Family Controls entitlement key

When you add the Family Controls capability, Xcode automatically updates your app target’s entitlements file to include the com.apple.developer.family-controls entitlement key set to true:

<plist>
    <dict>
        <key>com.apple.developer.family-controls</key>
        <true/>
    </dict>
</plist>

If your app target doesn’t include an entitlements file, remove then re-add the Family Controls capability.

Update your provisioning profile

After you add the Family Controls capability to your app’s target in Xcode, generate a provisioning profile, and re-sign your app with the profile. Use automatic signing to let Xcode manage signing for you. If you use automatic signing, Xcode automatically enables Family Controls for your app’s App ID in Certificates, Identifiers & Profiles and requests a new provisioning profile for your app. For more information, see Edit, download, or delete provisioning profiles.

If you manually sign your app, enable the Family Controls capability for your app’s App ID in Certificates, Identifiers & Profiles, then regenerate your provisioning profile. For more information, see Enable app capabilities. After you regenerate the profile, download it or select Download Profile from the Provisioning Profile dropdown menu in Xcode to install it. For more information, see Distributing your app to registered devices.

If your app includes a Screen Time API extension, use the same steps to update the provisioning profile of the extension.

Request the Family Controls entitlement

To distribute your app, you need an entitlement that enables distribution. When you submit your app to TestFlight and the App Store, request permission to use the Family Controls entitlement. This entitlement supports provisioning profiles for development, Ad Hoc, and App Store distribution. If your app includes a Screen Time API app extension, submit the same request for the extension.

See Also

Security