📌 核心结论:「证书类型(dev / dis)」和「签名方式(自动 / 手动)」是两个独立维度,不要混为一谈。 能不能上架,只取决于证书类型和 Profile 类型,跟自动还是手动签名无关。
一、自动签名 vs 手动签名 —— 只是「谁来管理证书和描述文件」
| 维度 | 自动签名(Automatically manage signing) | 手动签名(Manual) |
|---|---|---|
| 证书 / Profile 来源 | Xcode 连接 Apple 账号,自动创建、下载、更新 | 自己在开发者后台生成证书 + Provisioning Profile,手动导入选择 |
| 谁选 Profile | Xcode 按 Build Configuration 自动挑选 | 手动为每个 Configuration 指定 Profile |
| 最终产物 | 完全一样 | 完全一样 |
💡 关键结论:只要用的是同一张证书、同一个 Profile、同样的 Configuration,自动签名和手动签名打出来的 ipa 是等价的。苹果校验的是签名内容(证书 + entitlements + profile),不关心你用哪种方式配置。
- 自动签名优点:省事,证书过期能自动续期。
- 手动签名优点:可控。CI 环境、多人协作、多证书切换、企业分发时更常用,不会被 Xcode 擅自改动配置。
二、dev 证书 vs dis 证书 —— 这才决定「能不能上架」
这是真正影响产物用途的维度。
Development 证书(Apple Development)+ Development Profile
- 只能装到 Profile 中登记过 UDID 的测试设备上
- 用于 Xcode 真机调试
- ❌ 不能上传 App Store
Distribution 证书(Apple Distribution)+ Distribution Profile
又分两种,用途完全不同:
| Profile 类型 | 用途 | 能否上架 |
|---|---|---|
| App Store | 上传 App Store Connect / TestFlight | ✅ 上架审核用的就是它 |
| Ad Hoc / Enterprise | 内部分发,装到指定设备 | ❌ 不能上架 |
三、直接回答:dis 包可以上传 App Store 审核吗?
要看是哪种 dis 包:
✅ 可以:用 Distribution 证书 + App Store Provisioning Profile,通过 Xcode
Archive → Distribute App → App Store Connect(或 Organizer 上传 / Transporter)打出的包。这就是上架审核用的包。
❌ 不可以:用 Distribution 证书但配的是 Ad Hoc / Enterprise Profile,只能内部 / 指定设备安装。
实务要点
- 上架必须走 Archive(Generic iOS Device / Any iOS Device,Release 配置),不能是模拟器、不能是真机 debug 包。
- 上传的是苹果签名验证过的 ipa,自动 / 手动签名都行,只要证书是 Distribution、Profile 是 App Store 类型即可。
- 也可以直接把 ipa 拖进 Transporter 上传,前提同上。
一句话总结
能不能上架,取决于证书是 Distribution + Profile 是 App Store 类型,跟自动还是手动签名无关 —— 两种方式打出的包对苹果是等价的。 dev 包永远上不了架,App Store 类型的 dis 包才是审核上线用的包。