Create child communication safety experiences using PermissionKit to request parental permission for children. Use when building apps that involve child-to-contact communication, need to check communication limits, request parent/guardian approval, or handle permission responses for minors.
PermissionKit is a specialized Swift framework for iOS 26+ that enables developers to build child communication safety experiences by requesting parental permission for children to communicate with specific contacts. When a child user encounters communication limits in your app, PermissionKit provides the infrastructure to create permission requests that are sent to parents or guardians via iMessage for review and approval. This ensures that child-to-contact communication in your app complies with parental controls and communication limits set by guardians.
The framework centers around a request-response flow managed by AskCenter, where developers create PermissionQuestion objects describing what permission is needed, the system presents these questions to children who can forward them to parents, and the app receives PermissionResponse objects containing the parent's decision. Key capabilities include checking which communication handles (phone numbers, emails, custom identifiers) are known to the system via CommunicationLimits, creating structured permission questions with CommunicationTopic, and integrating the permission flow into SwiftUI interfaces using PermissionButton. The framework also supports significant app update permission requests through SignificantAppUpdateTopic.
PermissionKit is designed for app developers building communication features for children, including messaging apps, social platforms, collaborative tools, or any application where minors need to initiate contact with others. It is exclusively available through iMessage for parent/guardian approval flows and should not be used as a general in-app contact permission system, content moderation framework, or chat safety tool. The APIs span multiple iOS 26.x releases (26.0, 26.1, 26.2+), requiring developers to verify signatures and availability against their target Xcode 26 SDK before implementation.
PermissionKit requires iOS 26.0+ at minimum, with core APIs available on iOS 26.0+, iPadOS 26.0+, Mac Catalyst 26.0+, macOS 26.0+, and visionOS 26.0+. AskError requires 26.1+, while AskCenter, PermissionButton, and SignificantAppUpdateTopic require 26.2+. Always verify against your current Xcode 26 SDK.
Use CommunicationLimits.current.knownHandles(in:) to check which handles the system knows. If communication limits are not enabled, AskCenter.shared.ask(_:in:) will throw AskError.communicationLimitsNotEnabled, which you should handle in your permission request flow.
No. PermissionKit is exclusively for parent/guardian approval flows through iMessage for children's communication limits. It is not designed as a general in-app contact permission system, content moderation framework, or chat safety tool.
PermissionKit supports phone numbers, email addresses, and custom identifiers through the CommunicationHandle type. These handles are used to identify contacts that children want to communicate with.
The documentation advises not to invent PermissionKit entitlement keys and to verify current Apple documentation and Xcode capabilities before adding signing requirements. Check Apple's official documentation for the most current entitlement requirements.
Quick Setup:
.claude/skills/Repository
dpearson2699/swift-ios-skills