用户角色与权限
最小权限原则:产品/运营/开发/财务分别授予所需权限,避免误操作和安全风险。权限给得越少,事故越少。
主要角色
| 角色 | 权限范围 | 典型成员 |
|---|---|---|
| Account Holder(账户持有人) | 唯一持有人:签协议、管理银行/税务、添加成员 | 创始人/负责人 |
| Admin(管理员) | 除签协议外几乎全部权限(含管理成员) | 技术负责人 |
| App Manager(应用管理者) | 管理指定 App 的版本、IAP、TestFlight | 产品经理 |
| Developer(开发者) | 上传构建、管理 TestFlight、查看技术数据 | iOS 工程师 |
| Marketing(营销) | 访问 App Analytics、销售数据,不能改版本 | 运营/市场 |
| Finance(财务) | 访问财务/付款报告 | 财务人员 |
| Cloud Managed Distribution | Xcode 自动签名使用的分发证书访问权 | CI/自动签名 |
角色通常可以限定到具体 App 或账号级别:例如给某工程师仅某 App 的 Developer 权限,而不是整个账号。善用「App 范围」能进一步收紧权限。
邀请成员
- 前往 Users and Access → “+” → 邀请新用户。
- 填写邮箱、姓名。
- 选择角色,并设置 App 范围(全部 App / 指定 App)。
- 可单独开关:财务权限、云签名权限、API 密钥权限。
- 成员收到邮件后接受邀请即生效。
沙盒账号
在「Users and Access → Sandbox」中可创建沙盒测试账号,用于测试内购/订阅。要点:
- 沙盒账号是独立的测试身份,不影响真实 Apple ID。
- 测试 IAP 时,先在设备设置中退出真实账号,再用沙盒账号登录 App Store。
- 沙盒账号数量有限,注意管理;测试完成可删除重建。
最佳实践
- 协议、税务、银行只给 Account Holder / Admin,避免泄露敏感信息。
- 上传构建的机器账号单独授权,用 CI 专用账号而不是个人账号,减少敏感邮箱暴露。
- 定期回收离职成员权限,并开启双重认证(2FA)作为强制项。
- 使用 API 密钥(App Store Connect API) 代替共享密码:为 CI/脚本创建独立 Key,可随时吊销。
- 关键操作留痕:成员管理、协议变更等高危操作保持审计意识。
自检清单
- 已按「最小权限」为每个成员分配角色
- 财务、税务、银行权限仅限必要人员
- CI 使用专用账号/API 密钥而非个人账号
- 已开启双重认证
- 已制定离职成员权限回收流程
常见问题
- 账号被锁/权限不足? 找 Admin 检查角色;个别操作(如签协议)只有 Account Holder 能做。
- 成员收不到邀请? 检查邮箱、垃圾箱;确认邮箱未被其他开发者账号占用。
- 可以把 Account Holder 换成别人吗? 可以,但需 Account Holder 本人操作,且涉及协议、税务的转移,务必谨慎。
