iOS 正式包签名(Release 包签名)是 App 能够在 App Store 上架 或
通过 Ad Hoc/TestFlight 分发
的关键。它和调试签名(Development)有很大区别。
1. iOS 签名的核心概念
在苹果体系里,签名用来保证 App 的合法性和设备的可执行性。
主要涉及三样东西:
证书 (Certificate) 用 Apple Developer 标识你是合法开发者
账号申请的数字证书(.cer
/
.p12
文件)
App ID 每个 App 的唯一标识(和 匹配应用
Bundle Identifier 对应)
描述文件 将证书 + App ID + 决定 App
(Provisioning 设备信息绑定在一起 能装在哪些设备上,以及能否上架
Profile)
2. 正式包需要的证书类型
在 Apple Developer Center 里可以申请两类正式签名证书:
- App Store / Ad Hoc 证书
- 用于 发布包(Release)\
- App Store:只能通过 App Store 安装\
- Ad Hoc:指定 UDID 的设备能直接安装\
- 签名文件名一般叫 iOS Distribution
- Development 证书
- 只能用于调试,不能用于正式发布\
- 签名文件名一般叫 iOS Development
⚠️ 所以上架和正式包,一定要用 Distribution 证书。
3. 正式包签名的流程
步骤 1:创建证书
- 登录 Apple Developer\
- 进入 Certificates, Identifiers & Profiles\
- 创建 iOS Distribution 证书\
- 下载并安装到 Keychain(钥匙串)
步骤 2:配置 App ID
- 在 Identifiers 里创建新的 App ID\
- 填写 Bundle ID(要和 Xcode 项目里的完全一致)\
- 开启所需的 App Capabilities(推送、iCloud 等)
步骤 3:创建 Provisioning Profile
- 在 Profiles 里创建新的配置文件
- 选择 App Store(上架用)或 Ad Hoc(分发用)\
- 选择对应的 App ID\
- 绑定 iOS Distribution 证书\
- 下载
.mobileprovision
文件\
- 双击导入 Xcode
步骤 4:Xcode 配置签名
在项目里:\
- 选中 TARGETS → Signing & Capabilities\
- Team 选择你的开发者账号\
- Build Configuration: Release\
- 勾选 Automatically manage signing(推荐)\
- 如果手动签名:选择对应的 Provisioning Profile + Distribution 证书
4. 打 Release 包(Archive + 签名)
- 在 Xcode 顶部选择 Any iOS Device (arm64)\
- 菜单:Product → Archive\
- 完成后会进入 Organizer
- Distribute App → App Store Connect → Upload(上架)\
- Distribute App → Ad Hoc / Enterprise → 导出
.ipa
(私发测试)
5. Flutter 项目注意
如果你是 Flutter 项目: 1. 在命令行先构建 Release:
bash flutter build ios --release
2. 打开
ios/Runner.xcworkspace
,按照上面的签名流程设置
3. 用 Xcode Archive 并分发
6. 常见问题
- 签名失败:Provisioning profile doesn’t include signing
certificate
→ 说明你的 Profile 没有绑定 Distribution 证书,重新生成\ - App ID 不匹配
→ 确保Info.plist
的 Bundle ID 和 Developer Center 里一致\ - 上传 App Store 被拒
→ 检查证书是否是 Development,必须是 Distribution
✅ 总结:
- 调试包签名 = Development 证书 + Development Profile\
- 正式包签名 = Distribution 证书 + App Store / Ad Hoc Profile\
- 上架必须用 App Store Distribution 签名