前阵子帮一个新同事配置 iOS 开发环境,他用的 Windows 笔记本,要创建开发证书才能在真机上跑测试。按苹果的常规流程,得在 Mac 上打开 Keychain Access → 生成 CSR → 上传 Apple Developer Center → 下载证书再导出 P12 文件。但他手头没有 Mac,这条路走不通。后来查了下,Windows 上制作 iOS 证书其实有几条不同的路径可以走。

传统方案 OpenSSL + Apple Developer Center

不依赖 Mac 的话,可以用 OpenSSL 在 Windows 上生成私钥和 CSR。命令行执行 openssl genrsa -out key.pem 2048 生成私钥,然后 openssl req -new -key key.pem -out CertificateSigningRequest.csr 生成 CSR 文件。接着登录 Apple Developer Center 上传 CSR,下载生成的 .cer 证书,最后用 OpenSSL 把 .cer 和私钥合并导出为 P12:openssl pkcs12 -export -in certificate.cer -inkey key.pem -out cert.p12

流程上走得通,但涉及四个独立环节——生成私钥、创建 CSR、去网页上传下载、命令行转换。任何一个步骤的参数或路径写错了就得重来。而且 .cer 和私钥文件是一一对应的,如果私钥文件丢失或者弄混了,证书就废了。管理多台电脑的证书时,每台都得重复一遍导出导入操作,团队协作场景下每次有人加入都要重新走一遍证书传递流程,沟通成本和时间成本都不少。

在 Windows 上使用 Appuploader 完成证书全流程

Appuploader 把证书申请流程整合成了可视化操作。打开工具点击"证书管理"→“添加”,弹出对话框里选证书类型:开发证书(iOS App Development)用于调试安装,发布证书(iOS Distribution)用于上传 App Store。填写证书名称用来区分不同用途,设置 P12 密码保护证书文件。点击生成,工具自动完成 CSR 生成、上传苹果服务器、下载和打包成 .p12 的整个流程。不需要手动执行任何命令行操作。

最有用的功能是勾选"使用 AppUploader 服务同步证书"后,证书会上传到云端,在同一账号下的其他电脑可以下载使用。团队里 Windows 和 Mac 机器都能拿到同一份证书,不需要每台机器重复走 Keychain 导出导入。免费账号生成的证书有效期 7 天,付费账号一年。

证书生成后在同一个界面里管理描述文件,查看 Provisioning Profile 的权限配置和有效期。设备连上电脑后工具自动读取 UDID,添加到测试设备列表,不需要去苹果官网手动输入 40 位设备码。

需要注意的点

免费开发者账号生成的证书有效期只有 7 天,而且无法上传 App Store,需要发布的话得付费加入 Apple Developer Program。证书名建议用字母数字组合,P12 密码不要设置太复杂以免忘记——密码忘了没法找回,只能重新生成。一个证书可以对应多个 App,不用每个应用单独生成,建议统一分类命名避免重复创建。

偶尔配置证书的话,OpenSSL 命令行方案不依赖额外工具,就是操作方法长了些。频繁管理多个项目的证书和描述文件,Appuploader 的可视化操作和证书同步功能能省不少重复劳动,尤其在纯 Windows 环境下优势更明显。