Apple Foundation Models PCC 申请与使用:从权限到真机验证

type
status
date
slug
summary
tags
category
icon
password
wechat_gate
notion image
Apple 又送钱来了。
如果你正在开发 iOS 或 macOS App,想给用户加入总结、改写、翻译、文档问答等能力,Apple Foundation Models 的 PCC 方案值得认真看一遍。它的关键价值不是“又多了一个大模型 API”,而是:在符合条件并拿到权限之后,App 可以通过原生 Swift 框架访问 Apple 的 Foundation Model,不要求你在客户端塞入 OpenAI、Claude 或 Gemini 的 API Key。
但这件事也最容易被一句“无需 API Key”带偏。PCC 不是一个可以随意调用的通用 REST 服务,申请到 entitlement 不等于所有设备都能用,Xcode 出现 Build Succeeded 也不等于 TestFlight 和真机运行已经验证完成。真正需要理解的,是从账户授权到运行时可用性的完整链路。

先把 Apple Foundation Models、端侧模型和 PCC 分清楚

Foundation Models 是开发者使用 Apple 智能模型的一套统一 Swift API。它至少包含两个对开发者最重要的模型来源:
  • 设备端模型:尽可能在用户设备上完成推理,延迟和隐私表现更好,但模型规模、上下文和复杂推理能力受到设备资源限制。
  • Private Cloud Compute 模型:请求交给 Apple 的 PCC 基础设施处理,用于更大的上下文和更强的推理能力,同时保留 Apple 对云端隐私与无持久化处理的设计承诺。
WWDC26 的官方内容把 PCC 模型描述为拥有 32K 上下文窗口和不同推理级别的服务器模型。这个能力适合更长的文档、需要更多推理步骤的任务,但它不是“任何任务都应该强制上云”。
对应用来说,更合理的抽象不是“我有一个模型”,而是“我有一个模型策略”:
这里还有一个容易被忽略的边界:Foundation Models 并不会自动把 PDF 变成结构化知识库。你的 App 仍然需要负责 PDF 文本提取、页码保留、分段、上下文拼装,以及结果回写 Markdown。模型只是其中的推理与生成环节,不是整个文档流水线。

PCC 申请的本质:申请的是 Managed Capability

Apple 的 PCC 开发者接入不是注册一个云平台账号,而是申请一项由 Apple 管理的能力。它会进入 App ID、Entitlement 和 Provisioning Profile 组成的签名链路。
可以把四个对象理解成四层:
层次
对象
它回答的问题
账户授权
Capability Request / Team
Apple 是否允许这个团队使用能力
应用身份
App ID / Bundle Identifier
哪个 App 被授权
项目声明
Xcode Capability / .entitlements
当前 Target 想使用什么
签名落地
Provisioning Profile / Code Signature
最终安装包实际携带什么
因此,手动往 .entitlements 文件里写入下面的键,并不能绕过 Apple 的授权:
这个文件只代表项目声明。只有当 Apple 账户、App ID、Profile 和签名结果彼此匹配时,它才会成为有效的最终权限。

Apple Foundation Models PCC 申请步骤

申请入口会随开发者网站改版,但当前主线可以按下面的顺序理解。

1. 先确认资格和团队角色

Apple 当前 PCC 页面列出的免云端 API 费用条件包括:加入 App Store Small Business Program、所有 App 的首次下载量低于 200 万,并且开发者账户已经获得 PCC entitlement。若后续超过下载量门槛或不再符合 Small Business Program 条件,Apple 页面说明会通知开发者,并提供迁移到其他方案的期限。
这不是一次永久的“免费服务器”承诺,而是带资格条件和配额边界的开发者能力。申请前还要确认目标 App ID 已创建,Bundle Identifier 与 Xcode 项目完全一致。Organization 团队通常需要由 Account Holder 提交申请,后续具备 Certificates, Identifiers & Profiles 权限的成员才能配置能力。

2. 在 Capability Requests 中提交申请

常见路径是:
  1. 登录 Apple Developer Account。
  1. 打开 Certificates, Identifiers & Profiles。
  1. 进入 Identifiers,选择目标 App ID。
  1. 打开 Capability Requests。
  1. 找到 Access to models on Private Cloud Compute 并点击 Request。
  1. 说明 App 的核心功能、PCC 的使用位置、测试和分发计划,以及模型不可用时的处理方式。
申请理由不要只写“想体验 Apple 的新模型”。更有说服力的写法,是把产品流程说清楚,例如:用户把 PDF 导入 MarkZen,App 先在本地完成文本抽取和格式识别,再将需要长上下文的章节总结交给 PCC,最后把结果写回 Markdown;当 PCC 不可用时,App 改用端侧模型或提示用户稍后重试。

3. 等待状态变为 Assigned

在 Capability Requests 页面查看状态。Assigned 表示相关 entitlement 已经分配到账户或团队范围,是账户授权完成的重要信号。
但 Assigned 之后仍然要继续配置 App ID 和 Xcode Target。它不是“申请结束”,而是从账户授权进入工程签名阶段的分界点。

Xcode 配置:自动签名是更稳妥的起点

对个人开发者和小团队,建议先使用自动签名走通 Debug、Release 和真机验证。
在目标 App 的 Target 中:
  1. 打开 Signing & Capabilities。
  1. 确认 Team 和 Bundle Identifier 正确。
  1. 开启 Automatically manage signing。
  1. 添加 Access to models on Private Cloud Compute
  1. 检查 Xcode 是否生成或更新 .entitlements 文件。
  1. 确认当前配置使用了新的 Managed Profile。
如果项目包含 Widget、Share Extension 或其他 Target,不要假设主 App 的 Capability 会自动适用于所有扩展。只有真正需要调用模型的 Target 才应配置相应能力,并分别检查它们的 Bundle Identifier 与签名配置。
自动签名背后的动作大致是:
如果团队使用 CI、手动签名或多个分发渠道,就要把这条链路显式化:更新 App ID 能力后重新生成 Distribution Profile,确认 CI 没有继续使用旧 Profile,并对每个相关 Target 做相同检查。

Foundation Models 的最小调用方式

下面的代码展示 PCC 模型的最小调用路径。具体 API 名称和可用性检查方式应以当前 Xcode 与 SDK 文档为准,因为相关能力仍处于 Beta 变化期。
与典型第三方云模型调用相比,这里没有 URLSession、Bearer Token 或服务端 API Key。原因不是 Apple 把 PCC 变成了公开 HTTP 接口,而是请求由系统框架、设备状态和 entitlement 共同管理。
同时,Foundation Models 在 WWDC26 中引入了更统一的模型抽象,也允许接入符合协议的第三方模型。这里必须把两种情况分开:Apple Foundation Model 的 PCC 使用条件由 Apple 决定;第三方 provider 是否需要 API Key、如何计费,则由第三方 provider 自己决定。

Build Succeeded 之后,还差哪些验证

这是整个流程中最重要的部分。

1. 检查 Xcode 配置

在 Signing & Capabilities 中确认没有红色错误,Team、Bundle Identifier、证书和 Profile 都匹配。特别注意 Capability 是否只配置在 Debug;如果 Release 没有同样的能力,开发阶段成功并不能代表 Archive 成功。

2. 检查最终 App,而不是只看源码

对于已经签名的 .app,可以检查最终产物中的 entitlement:
也可以查看嵌入的 Provisioning Profile:
要确认的是:最终签名产物是否真的携带 com.apple.developer.private-cloud-compute,App Identifier、Team Identifier 和分发类型是否与当前构建一致。

3. 走完 Archive 和真机

建议把验证分成三层:
设备支持情况、Apple Intelligence 是否开启、地区、系统状态、网络和配额都会影响 PCC 可用性。所以“签名成功”与“模型可用”必须分开记录。

一个适合文档 App 的实际架构

以 MarkZen 这类 PDF 到 Markdown 的工具为例,我会把 AI 能力拆成四步:
这种架构的好处,是把模型不可用的影响限制在某一个步骤。PCC 暂不可用时,短文本仍然可以由端侧模型处理;网络或配额恢复后,再重新执行长文档任务。用户看到的是一个有降级能力的文档工具,而不是一个点击后才告诉他“服务不可用”的黑盒按钮。
对于需要更强编程、复杂 Agent、多工具联网或超长上下文的功能,第三方模型仍然可能更合适。Apple PCC 的优势在于系统整合、隐私设计、无需用户填写 API Key,以及对 Apple 平台应用的低接入成本,不在于它要替代所有顶级通用模型。

常见失败和真正应该记住的教训

失败一:手动添加 Entitlement,以为权限已经获得

.entitlements 文件只是项目声明,不能绕过 Managed Capability,也不会自动刷新旧 Provisioning Profile。正确做法是先确认 Apple 账户授权,再更新 App ID 和 Profile,最后检查签名产物。

失败二:Debug 成功,Release 或 Archive 失败

这通常来自配置范围不一致、Distribution Profile 过期、CI 使用缓存 Profile,或者主 App 与扩展 Target 的签名设置不一致。解决方法不是反复 Clean,而是逐配置比较 Signing & Capabilities、Build Settings 和最终 .app

失败三:把“无需 API Key”理解成“无限免费且永远可用”

当前官方条件包含 Small Business Program、首次下载量门槛以及团队 entitlement;文档也明确提示服务能力与系统条件会变化。产品必须准备配额、网络、设备和地区不满足时的回退路径。
这三类问题背后的共同教训是:不要把模型调用当成一个孤立的 Swift 函数。对 Apple 平台来说,账户授权、代码签名、系统状态和产品降级策略同样属于 AI 功能的一部分。

最后的判断:PCC 适合作为默认能力,但不应成为唯一能力

如果你的产品主要面向 Apple 用户,且核心任务是摘要、改写、翻译、文档整理和 Markdown 优化,那么 Foundation Models 的 PCC 值得作为默认 AI 引擎优先验证。它能减少 API Key 管理、后端代理和按 Token 计费带来的复杂度,也能让产品更像系统能力的自然延伸。
但一个可靠的架构应该同时接受三个事实:PCC 有申请门槛,运行时受条件限制,能力边界也不同于最强的通用模型。最稳妥的策略是端侧模型负责轻任务,PCC 负责更长和更复杂的任务,第三方模型作为高级选项,并把所有模型都包在一个可替换的适配层后面。
如果你也在申请 PCC,或者已经遇到 entitlement、Archive、TestFlight、配额或真机可用性问题,欢迎在评论区分享具体的错误和处理方式。这些细节对正在做 Apple AI 应用的国内开发者很有参考价值;如果本文对你有帮助,也欢迎点一下在看或转发给同样在做 iOS、macOS AI 功能的朋友。

参考资料

 
2026.08.23 17:52
沪 · 漫读空间
 
写 AI,写成长,偶尔写投资。 关注沐风,不定期更新,全是干货。