有位用 Windows 的开发者朋友问过一个问题:iOS 描述文件(Provisioning Profile)是不是一定要在 Mac 上才能生成?当时他的项目用 Flutter 开发,iOS 端只需要打包和测试,但卡在描述文件这步——Xcode 的 Accounts 面板可以自动管理描述文件,但他没有 Xcode,也不打算为了这一步装整个 Xcode。
答案是:描述文件可以在 Windows 上生成,不需要 Mac。描述文件本质上是一个 XML 格式的配置文件,记录了 App 的 Bundle ID、证书信息和测试设备列表,通过 Apple Developer Center 的 API 创建和下载,不依赖 macOS 特有的能力。
传统方式的问题
Apple Developer Center 网页端可以手动创建描述文件。登录 developer.apple.com → Certificates, IDs & Profiles → Profiles → 点击加号 → 选择类型 → 选 App ID → 选证书 → 选设备 → 下载。流程本身不难,但有几个痛点。
一是操作链条长,网页端每个选项都要从列表里选,没有搜索功能,项目多了以后找一个 Bundle ID 得翻半天。二是证书和描述文件的关联需要自己维护——发 现证书过期了要先去证书管理重新生成,再来描述文件页面更新,来回切换。三是测试设备的 UDID 需要在网页端手动输入,40 位字符输错一个就要重新来。
Appuploader 在 Windows 上生成描述文件
Appuploader 的"描述文件管理"入口在主界面。点击"新建描述文件"之后,填写名称、选择类型和对应的 Bundle ID。如果没有合适的 Bundle ID,可以点"添加 Bundle"直接在工具里新增。
描述文件类型选 Development 用于开发调试安装,选 App Store 用于发布上架。Development 类型上架需要关联测试设备——Appuploader 连上 iOS 设备后可以自动读取 UDID,添加到设备列表。不需要在网页上手抄 40 位设备码。
如果新建时提示"证书为空",先去证书管理里确认有没有对应类型的证书。Development 描述文件需要开发证书,App Store 描述文件需要发布证书。推送类型的配置不需要描述文件。
创建完成后会生成 .mobileprovision 文件,下载到本地保存就行。需要注意描述文件和应用是一一对应的,一个描述文件只能绑定一个 Bundle ID。证书可以在多个 App 之间共用,但描述文件不行。如果换了证书或者更新了设备列表,描述文件需要重新生成。
描述文件配合打包的流程
在 Windows 上生成描述文件后,配合 IpaGuard 做代码混淆保护,然后用 Appuploader 上传到 App Store,或者扫码安装到测试设备。不使用任何 Mac 设备完成整个 iOS 打包发布流程。
免费账号也能创建描述文件,但有效期只有 7 天,且不能用于上架 App Store。正式发布需要付费的 Apple Developer 账号(688 元/年)。