如何申请 Family Controls (Distribution) 权限:解决应用分发问题的完整指南
近日,在打包或上传使用 Screen Time API(Family Controls)的应用时,许多开发者遇到了如下警告,导致应用无法成功分发:
Bundle identifier is using development only version of Family Controls (Development) capability. Please request access to Family Controls (Distribution) to avoid issues when distributing.
核心问题 :您当前的 App ID 仅拥有 Family Controls (Development) 权限,该权限仅用于开发调试。若要提交到 App Store 或进行任何形式的分发(如 TestFlight),您必须为其申请 Family Controls (Distribution) 权限。
别担心,本文将为您提供从问题诊断到成功申请的完整流程图解。
一、 问题诊断:你遇到这个问题了吗?
如果你的应用包含以下特征,很可能需要走此申请流程:
- 使用了
FamilyControls框架。 - 使用了
ManagedSettings框架。 - 实现了应用限时、设备活动监控、网站内容过滤等功能。
- 在打包归档(Archive)或上传至 App Store Connect 时,收到了本文开头提到的错误提示。
!图片链接
错误提示明确指出需要申请分发权限
二、 完整申请流程(分步教学)
请严格按照以下步骤在 Apple Developer 后台进行操作。
第 1 步:访问 Apple Developer 账户
- 登录 https://developer.apple.com。
- 点击右上角进入 "Account"。
第 2 步:导航至证书与标识符管理页
- 在左侧边栏,找到并点击 "Certificates, Identifiers & Profiles" 。
这是管理你应用所有核心配置的中心。
第 3 步:找到你的 App ID 并编辑
- 在左侧边栏的 "Identifiers" 下,点击 "App IDs"。
- 在列表中找到与你项目
Bundle Identifier完全对应的 App ID,并点击其标识符名称进入详情页。
第 4 步:关键操作 - 申请 Distribution 权限
-
在 App ID 的配置页面,找到 "Capabilities" (功能) 列表。
-
滑动找到 "Family Controls" 这一项。
-
你会看到它当前的配置状态是:"Development"(并且可能有一个黄色的警告图标)。
-
点击 "Family Controls" 右侧的 "Configure" 按钮。
这里就是解决所有问题的关键入口!
第 5 步:提交权限申请表单
点击 "Configure" 后,系统会弹出一个申请表单。请认真填写以下信息:
-
描述你的使用场景 (Description):
- 要清晰、具体。 不要只写"用于控制使用时间"。
- 优秀示例: "本应用是一款时间管理与专注力提升工具,旨在帮助用户(特别是家庭成员)合理规划设备使用时间。我们使用 FamilyControls 框架来让家长为孩子设置应用和网站的使用时长限制,并使用 DeviceActivity 扩展来报告设备活动情况,以达成健康数字生活的目标。"
- 强调你的应用如何帮助用户,以及具体使用了哪些相关的 API(如
DeviceActivityMonitor,AppRestriction等)。
-
选择使用此功能的原因 (Reasons for using this capability):
- 通常需要勾选所有符合你应用功能的选项,例如:
Allow users to set restrictions on device usage(允许用户设置设备使用限制)Monitor device activity(监控设备活动)Filter web content(过滤网页内容) (如果用到)
- 通常需要勾选所有符合你应用功能的选项,例如:
-
提供任何其他信息 (Additional Information):
- 如果您的应用有特殊的设计(例如,为学校或企业定制),可以在此说明。
- 可以再次强调应用已遵循所有相关的隐私政策和指南。
-
阅读并同意条款:
- 仔细阅读 Apple 关于使用 Family Controls 的声明和条款,然后勾选确认框。
-
提交申请:
- 检查信息后,点击 "Submit" 或 "Request" 按钮提交你的申请。
第 6 步:等待审核并检查状态
- 提交后,状态会变为 "Pending" (待处理)。
- Apple 的审核团队会手动审核你的申请。此过程通常需要 1 到 5 个工作日,请耐心等待。
- 你可以不时回到 "App IDs" 列表页,查看该 App ID 的状态。当 "Family Controls" 能力旁边的状态变为 "Configurable" 或直接显示为 "Enabled" 时,表示申请已通过。
第 7 步:更新本地配置
申请在后台通过后,你本地的开发环境可能不会自动同步。为确保分发成功,请完成以下步骤:
-
更新描述文件 (Provisioning Profile):
- 重新进入 "Profiles" 部分。
- 为你用于分发的配置文件(通常是
iOS App Distribution)点击 "Edit" ,然后简单地重新选择一遍你的 App ID 和证书,生成并下载新的配置文件。 - 或者在 Xcode 中,前往
Preferences -> Accounts -> 你的账号 -> 点击左下角"Download Manual Profiles"手动下载。
-
在 Xcode 中清理并重建:
- 在 Xcode 中,为你的应用主 Target 和所有相关扩展(如
DeviceActivityMonitor扩展)的 "Signing & Capabilities" 选项卡中,确认 "Family Controls" 能力已启用。 - 执行
Product -> Clean Build Folder。 - 重新归档 (
Product -> Archive)。
- 在 Xcode 中,为你的应用主 Target 和所有相关扩展(如
三、 总结与注意事项
- 权限分离 :
Family Controls (Development)和(Distribution)是两种独立的权限。开发权限在首次在 Xcode 中添加能力时自动获得,但分发权限必须手动申请。 - 提前申请 :建议在开发完成、准备测试分发(如 TestFlight)或上架前,提前申请此权限,以免耽误进度。
- 描述是关键:申请表单中的描述部分是人工审核的重点,清晰、诚实、具体的描述能大大提高通过率和速度。
- 影响范围:此权限与你的 App ID(Bundle Identifier)绑定。如果你有多个应用(不同的 Bundle ID)需要使用此框架,每个都需要单独申请。