Apple Foundation Models PCC 申请与使用:从权限到真机验证
type
status
date
slug
summary
tags
category
icon
password
wechat_gate

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 中提交申请
常见路径是:
- 登录 Apple Developer Account。
- 打开 Certificates, Identifiers & Profiles。
- 进入 Identifiers,选择目标 App ID。
- 打开 Capability Requests。
- 找到
Access to models on Private Cloud Compute并点击 Request。
- 说明 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 中:
- 打开 Signing & Capabilities。
- 确认 Team 和 Bundle Identifier 正确。
- 开启 Automatically manage signing。
- 添加
Access to models on Private Cloud Compute。
- 检查 Xcode 是否生成或更新
.entitlements文件。
- 确认当前配置使用了新的 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,写成长,偶尔写投资。
关注沐风,不定期更新,全是干货。