问题
ruoyi-office-uniapp 若要打 iOS 包:
- 证书一般怎么申请?
- 普通开发者证书能不能把 IPA 挂到文档站让用户下载(类似现在的 Android APK)?费用大概多少?
- 正常上架 App Store 要什么证书、多少钱?
- 企业级证书多少钱、和上面有什么区别?
- 未来做一个「登录前配置客户域名、多家客户共用一个 App」行不行,要哪种证书?
- 以当前工程上架苹果商店,问题大不大?
答案
给外部客户用,只办 Apple Developer Program(约 99 美元/年),走 App Store 或苹果商务非公开分发;不要办企业计划。 iOS 做不到像 Android 那样把安装包挂文档站任意下载安装。一个商店包 + 登录前填客户接口域名,是正确的私有化交付形态。企业证书(约 299 美元/年)只允许给本公司员工,给客户用属违约,掉签会废掉所有包。
详细说明
1. 本仓库怎么出 IPA(和 Android 同一套资源)
正式 IPA 不能在 Windows 上本地编出来。流程与现有 Android 云打包相同:Vite 先编 dist/build/app,再交给 HBuilderX 云打包。
| 项 | 现状 |
|---|---|
| 演示构建 | cd ruoyi-office-uniapp 后 pnpm build:app:demo |
| 也可复用 | .cursor/skills/android-apk-build/scripts/prepare_android_package.ps1(编的是 app 平台,两端共用) |
| HBuilderX 工程 | D:\ruoyi-office-pack\ruoyi-office-android-demo-app(可暂共用;要隔离再复制一份 iOS 目录) |
| DCloud AppID | H5BCDBD62 |
| Bundle ID | 建议 com.ruoyioffice(与 Android 包名对齐) |
| 版本 | 1.0.0 / 100 |
pnpm build:app-ios | 只编前端资源,不会生成可安装 IPA |
HBuilderX:发行 → App Android/iOS 云打包 → 只勾 iOS → 使用自有证书(.p12 + .mobileprovision)。HBuilderX 版本需与工程 @dcloudio/uni-app(当前 3.0.0-40706…)对齐。
manifest 已具备:定位/相机/麦克风隐私文案、iOS 图标、com.apple.developer.networking.wifi-info(考勤读 Wi‑Fi)。目标目录 manifest.json 还须勾 Geolocation、SQLite(漏 SQLite 会弹「打包时未添加 sqlite 模块」)。准备脚本不会覆盖该文件。
开发调试:pnpm dev:app,把 dist/dev/app 导入 HBuilderX,跑 iOS 模拟器或基座。这不是发版包。
2. 证书怎么申请(要的是两样)
HBuilderX 要的不是「一张抽象证书」,而是:
- 私钥证书
.p12(带密码,不入库) - 与之绑定的描述文件
.mobileprovision
都在 Apple Developer 申请,前提是已加入对应开发者计划。证书文件本身不另收费。
标准链(有 Mac 最省事):
- Identifiers 建 Explicit App ID,Bundle ID =
com.ruoyioffice,勾选 Access WiFi Information。 - Mac「钥匙串访问」→ 证书助理 → 从证书颁发机构请求证书,得到 CSR。
- Certificates 创建 Apple Distribution,上传 CSR,下载
.cer并导入钥匙串。 - 导出「证书 + 私钥」为
.p12,设密码。 - Profiles 按用途建描述文件(见下表),下载
.mobileprovision。
只有 Windows 时,用 OpenSSL 生成 CSR/合成 p12,描述文件仍在苹果网页下载。CSR 必须和导出 p12 的那台机器(或那份私钥)对应,否则钥匙串里看不到私钥。
| 用途 | 证书 | 描述文件 |
|---|---|---|
| 指定几台真机内测 | Apple Distribution | Ad Hoc(设备 UDID 须先登记,约 100 台) |
| TestFlight / 上架 | 同一张 Distribution | App Store Connect(IPA 不能直接装手机) |
| 仅 Xcode/基座调试 | Apple Development | Development(不要用来交付客户) |
Ad Hoc 加设备后必须重新生成并下载 profile 再打包。App Store 的 profile 不能当「网页下载安装包」用。
DCloud 公用证书对不上 com.ruoyioffice 和 Wi‑Fi 能力,不能当正式交付。国内租用的「企业签 / 超级签」会掉签,不能当产品交付。
3. 三种计划与费用(2026)
| 普通开发者计划 | 同一计划 · 上架商店 | 企业计划 In-House | |
|---|---|---|---|
| 名称 | Apple Developer Program | 同上,只换 App Store 描述文件 | Apple Developer Enterprise Program |
| 年费 | 99 美元/年(约 700 元,随汇率) | 不再另付 | 299 美元/年(约 2100 元) |
| 谁能装 | Ad Hoc:已登记 UDID,约 100 台 | 商店 / TestFlight / 苹果商务 | 网页或 MDM,理论上任意 iPhone |
| 文档站挂 IPA | 不行 | 不挂 IPA,用户去商店下 | 技术上能挂,协议上只能给自己员工 |
| 给付费客户 | 只够内部几台调试 | 正规主路径 | 禁止,查到掉签 |
| 审核 | 不审包 | 审应用(常见 1~3 天) | 审公司资质,不审每个版本 |
| 申请 | 个人较快;公司要 D-U-N-S,约 1~4 周 | 账号办下来即可传包 | 很难,须证明只内发 |
建议用公司组织账号(商店显示公司名)。DCloud 云打包次数费与苹果年费无关,可忽略。软件在 App 外卖、不在应用内卖数字内容,一般无苹果分成;应用内订阅才涉及 15%~30%。
TestFlight 含在 99 美元里(外部测试约 1 万名,构建 90 天)。同一账号还可走 App Store Connect Custom App / 非公开分发(客户用 Apple Business Manager 领取),适合不希望被搜到的 B2B。
企业计划不是「更高级的客户交付」。 苹果限定为本组织员工内部 App,且须商店 / Custom App / Ad Hoc / TestFlight 都不够用。给外部客户用属违约。
4. 登录前配客户域名、一个 App 给多家用
可行,且应作为私有化移动端主形态(一个商店包 + 连客户自己的服务器)。
- 账号/证书:仍是 99 美元/年 + Distribution + App Store 描述文件。
- 不要企业证书,不要文档站挂 IPA,不要给每个客户打一个换皮包(易触 4.3 重复包)。
- 当前工程还没有运行时改接口:
VITE_SERVER_BASEURL打包时写死(演示为https://ruoyioffice.com/admin-api)。要做成可配置,需本地保存客户https://客户域名/admin-api,并一并处理 HTTPS、IM/WebSocket 等地址。 - 审核要求登录页默认能进演示环境(默认
ruoyioffice.com),改域名放「高级 / 私有化部署」。
5. 当前 UniApp 上架难度
中等:没有技术死结,卡点在产品和合规,不在 Vue/UniApp。
已相对稳:原生模块与隐私文案、图标、Wi‑Fi 能力说明;有注册与隐私政策页;业务是真 OA/审批/考勤,不是官网套壳。
上架前仍须补:
- 审核员能用的演示账号 + 稳定演示环境(勿验证码挡死、勿只连内网)。
- 默认连演示站;改域名放高级设置。
- 应用内注销账号(Guideline 5.1.1);现有设置里有隐私政策,未见对标注销。
- 隐私问卷:定位、相机、麦克风、Wi‑Fi、相册。
- 客户域名必须有效 HTTPS(ATS)。
- 商店文案写成「已购软件的移动客户端 / 私有化部署客户端」,避免被按应用内购拦。
预估:公司认证 1~4 周;可配置服务器 + 注销 + 审核材料约几天到两周;首次审核常见来回 1~3 轮。
6. 后续跟进清单
| 状态 | 事项 |
|---|---|
| 未开始 | 公司主体加入 Apple Developer Program(组织账号,$99/年) |
| 未开始 | 建 App ID com.ruoyioffice,勾选 Access WiFi Information |
| 未开始 | 出 Distribution .p12 + 先做 Ad Hoc(或 TestFlight)打通真机 |
| 未开始 | App 增加「默认演示地址 + 登录前/高级设置改服务器」 |
| 未开始 | 补应用内注销账号;整理隐私问卷与审核演示账号 |
| 未开始 | 决定公开上架还是 ABM 非公开分发 |
| 不做 | 企业计划 / 第三方企业签 / 文档站挂 IPA 当正式分发 |
| 已有 | Android 演示云打包目录与 app-demo 构建;iOS manifest 隐私与 Wi‑Fi 能力 |
证书与账号齐了之后,可按 Android 技能同一套路准备资源、核 manifest、提交 HBuilderX 云打包(苹果/DCloud 登录与证书密码由人工填写,不入库)。
涉及代码 / 配置
ruoyi-office-uniapp/manifest.config.ts:app-plus.distribute.ios(隐私文案、Wi‑Fi entitlement、图标)ruoyi-office-uniapp/env/.env:VITE_UNI_APPID、VITE_ANDROID_PACKAGEruoyi-office-uniapp/env/.env.app-demo:演示接口https://ruoyioffice.com/admin-apiruoyi-office-uniapp/src/utils/index.ts:getEnvBaseUrl()(编译期地址,尚无运行时改域名)- Android 打包配置:
.cursor/skills/android-apk-build/references/android-pack-config.md
相关链接
- Apple Developer Program
- Apple Developer Enterprise Program(仅员工内发)
- 排障:仓库内
ruoyi-office-desgin/troubleshooting/cross/日常问题-演示环境LiveKit通话与APK权限.md(正式包模块与 iOS 隐私文案) - 排障索引:
ruoyi-office-desgin/troubleshooting/mobile-uniapp/README.md
修订记录
| 日期 | 修改 |
|---|---|
| 2026-09-14 | 初稿:打包路径、证书申请、三种计划费用、私有化配域名、上架风险与跟进清单 |
