Uniapp iOS 企业内测/上架保姆级操作文档
# 📱 Uniapp iOS 企业内测/上架保姆级操作文档
> **适用环境**:Windows 电脑 + 公司普通开发者账号($99/688元/年) + uniapp 项目
> **文档目标**:记录从零生成证书、命令行传包、到 TestFlight 分发测试的全流程,避免重复踩坑。
---
## 🛠️ 第一阶段:环境与证书准备(最痛苦的一步)
*前提:你拥有一台 Windows 电脑,且没有 Mac。*
### 1. 获取 `.p12` 证书和私钥密码
* **最佳方案**:直接找 IT 索要公司现成的 `.p12` 证书和密码(需在 Mac 的“钥匙串访问”中导出)。
* **备选方案(如果 IT 找不到,自己生成)**:
1. 在电脑新建文件夹,右键打开 `Git Bash`。
2. 输入命令生成 CSR 和私钥:`openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out my_request.csr`(一路按回车跳过信息填写)。
3. 登录苹果开发者后台 -> `Certificates` -> `+` -> 选择 `Apple Distribution`。
4. 上传刚生成的 `my_request.csr` 文件,下载苹果给你的 `.cer` 文件。
5. 在 `Git Bash` 里将 `.cer` 和私钥合成 `.p12`:
* `openssl x509 -inform DER -in 你的证书.cer -out cert.pem`
* `openssl pkcs12 -export -out mycert.p12 -inkey private.key -in cert.pem` (**输入并记住你设置的密码**)。
### 2. 创建 App ID 和描述文件(Profile)
1. 后台 `Identifiers` -> `+` -> 选 `App IDs` -> 填 Description 和 Bundle ID(必须与 `manifest.json` 里的 `bundleIdentifier` 完全一致)。
2. 后台 `Profiles` -> `+` -> 选 **`App Store Connect`**(用于上架和 TestFlight)或 `Ad Hoc`(用于指定设备测试)。
3. 选择刚建的 App ID,绑定刚生成的证书,生成并下载 `.mobileprovision` 文件。
---
## 📦 第二阶段:HBuilderX 云打包
1. **配置 Manifest**:打开 `manifest.json`,在“基础配置”中确认 AppID 正确,**版本名称**(如 1.1.1)和**版本号**(如 102,必须为纯数字且递增)已修改。
2. **替换图标**:提供一张 1024x1024 的 png 图标。
> ⚠️ **致命坑**:用 Windows 自带“画图”打开图标,另存为 JPG 再转回 PNG,彻底洗掉透明通道,否则苹果会拒收。在 HBuilderX 中点击“自动生成所有图标并替换”。
3. **发起打包**:菜单栏 `发行` -> `原生 App-云打包` -> 勾选 iOS -> 选择“正式包”。
4. **填入证书**:上传 `.p12`(输入密码)和 `.mobileprovision` 文件。不要勾选 IDFA。点击打包,等待云端返回 `.ipa` 文件并下载到本地。
---
## 🚀 第三阶段:Windows 命令行上传 `.ipa`
1. **获取 App 专用密码**:登录 `account.apple.com` -> 登录和安全 -> App 专用密码 -> 生成(格式如 `abcd-efgh-ijkl-mnop`)。
2. **安装上传工具**:在 Git Bash 中执行 `npm install -g ios-uploader`。
3. **执行上传命令**:
```bash
ios-uploader -u 你的苹果开发者邮箱 -p 你的专用密码 -f "你的ipa文件绝对路径"
(如果路径带空格或中文,务必加英文双引号)
-
常见报错处理:
-
FAILED且提示版本已存在:去改manifest.json的版本号重新打包。 -
收到邮件提示
invalid large app icon can't be transparent:回去看第二阶段第 2 步。
-
🚦 第四阶段:分发测试与正式上架
1. 在后台建档(必做)
登录 App Store Connect -> 我的 App -> + 新建 App(填名称、选 Bundle ID、SKU 随便填)。等 10-20 分钟,刚才上传的包就会出现在 TestFlight 里,状态变为“准备提交”。
2. 内部测试(极速体验,无需苹果审核)
-
在 TestFlight 页面,左侧选择“内部测试”,点
+建群组。 -
点
+添加测试员(填邮箱,或者如果是管理员,直接拿手机登你的账号)。 -
在“构建版本”处点
+,把刚传的包加进去。 -
测试员在手机下载 TestFlight App,登录账号即可安装。
3. 外部测试(公开链接,任何人点开即装)
-
左侧选择“外部测试”,点
+建群组。 -
点击“构建版本”旁的
+把包加进去。 -
填写 Beta 描述、联系信息。
⚠️ 致命坑:如果你的 App 必须登录才能用,必须提供一个真实可用的测试账号,否则审核员登不进去 100% 被拒。如果真登不了,在后台回复话术解释(见下方备忘录)。
-
提交审核(通常需 1-2 天)。审核通过后,生成公开链接(
https://testflight.apple.com/join/...),发给任何人用 Safari 打开即可安装。
4. 正式上架 App Store(公开下载)
-
在 App Store Connect 点击顶部的 “分发” 标签。
-
填写 App 预览截图、描述、关键词、隐私政策链接(国内用户需提前完成工信部 App 备案)。
-
在“构建版本”处选择你的包,点击右上角“添加以供审核”。
-
等待苹果人工审核(1-3 天),通过后即可在 App Store 搜到。
💡 踩坑备忘录(老司机总结)
-
关于有效时间:TestFlight 测试包有效期为 90 天,到期后全员闪退,需上传新包。描述文件和证书有效期通常为 1 年。
-
如果 IT 死活找不到旧
.p12:不要让他去后台点Revoke(撤销),会搞崩公司所有老应用!去新建一个 Distribution 证书即可。 -
遇到登录被拒的“话术”:审核员若因为登不进去拒审,在后台回复:
"Hello Apple Review Team. This is an internal app for our company employees. The login requires an internal account. Please DO NOT type anything into the login box. Simply click the 'Guest Login' button located at the bottom of the screen to access all app features. Thank you."
-
旧设备兼容:TestFlight App 强制要求 iOS 16 及以上版本。如果测试同事手机太老(如 iPhone 6s),只能通过
Ad Hoc方式分发(需收集 UDID 重新打包)。

浙公网安备 33010602011771号