Identifiers(标识符)
App ID 既决定 Bundle ID,也决定可用的能力(Capabilities)。定好 Bundle ID 后尽量不要再改——它一旦被使用,就无法删除或复用。
App ID 与 Bundle ID 的关系
| 概念 | 说明 |
|---|---|
| Bundle ID | 应用的唯一标识(如 com.example.myapp),在 Xcode 中配置 |
| App ID | 在开发者后台注册的标识记录,与 Bundle ID 对应 |
| 能力(Capabilities) | App ID 上开启的服务:推送、通用链接、Sign in with Apple 等 |
App ID 相当于「应用的身份证」,Bundle ID 是身份证号;能力是身份证上附带的「可办理业务」。描述文件会引用 App ID,从而继承其能力。
创建 App ID
- 前往 Certificates, Identifiers & Profiles → Identifiers → “+” → 选择 App IDs。
- 选择 App 类型(而非 App Clips / 其他)。
- 填写描述与 Bundle ID(反向域名,如
com.example.myapp)。 - 勾选需要开启的 Capabilities:Push Notifications、Associated Domains、Sign in with Apple、App Groups、Background Modes 等。
- 保存生成 App ID。
通配 vs 显式
| 类型 | 示例 | 适用场景 | 能力支持 |
|---|---|---|---|
| 显式 App ID | com.example.myapp | 绝大多数正式 App | 完整支持 |
| 通配 App ID | com.example.* | 少量工具/批量 App | 受限(不支持部分能力) |
推荐始终使用显式 App ID。通配 App ID 无法启用推送、Sign in with Apple、App Groups 等能力,且可能与多 App 混淆。正式产品不要用通配。
Capabilities 使用场景速查
| 能力 | 用途 | 备注 |
|---|---|---|
| Push Notifications | 远程推送 | 需同时配置 APNs Key / 证书 |
| Associated Domains | 通用链接、网页凭证 | 需托管 apple-app-site-association |
| Sign in with Apple | 苹果登录 | App 内提供「通过 Apple 登录」按钮 |
| App Groups | 与 Extension/Widget 共享数据 | 多目标共享容器 |
| Background Modes | 后台任务 | 只开必需项,避免审核质疑 |
| In-App Purchase | 内购 | 现代版本默认通过 Xcode 配置即可 |
变更与维护
- 新增能力后,必须重新生成描述文件(描述文件记录的是 App ID 当时的能力快照)。
- Bundle ID 一旦用于上架,不可删除、不可复用;命名前反复确认。
- 修改能力可能导致已安装版本的行为变化,正式环境谨慎操作。
自检清单
- 已创建显式 App ID(反向域名、无拼写错误)
- 已按需开启全部 Capabilities
- 已确 Bundle ID 与 Xcode 工程完全一致
- 新增能力后已重新生成描述文件
常见问题
- Bundle ID 打错了怎么办? 未使用前可删除重建;已使用(含测试机安装)则只能换新 ID。
- Capabilities 开了但签名报错? 描述文件需重新生成;Xcode 中对应 Target 也要开启同一能力。
- App ID 找不到? 检查是否在正确的 Team 下;确认是否误创建为通配类型。
