UniApp iOS 本地打包完整流程
本地打包(离线打包)是将 UniApp 项目通过 Xcode 编译生成 IPA 文件的方式,相比云打包更灵活,适合需要自定义原生功能或频繁打包的场景-2-7。
一、准备工作
在开始之前,需要准备以下环境和工具:
| 项目 | 要求 |
|---|---|
| Mac 电脑 | iOS 开发必须在 Mac 环境下进行,macOS 26 及以上 最新xcode 支持macos 26及其以上 |
| Xcode | 从 App Store 下载最新版本 26版本 |
| HBuilderX | 4.26 及以上版本-1 |
| iOS 离线 SDK | 从 DCloud 官网下载,版本必须与 HBuilderX 一致-4-7 |
| 苹果开发者账号 | 个人或公司账号(年费 99 美元)-2 |
二、申请证书和描述文件
这是本地打包最关键的步骤,需要准备 P12 证书(私钥证书)和 Profile 文件(描述文件)-3-8。
没有 Mac 电脑? 可以使用香蕉云编或 Appuploader 等在线工具完成证书申请-3-8-9。
证书申请流程:
-
登录苹果开发者中心(developer.apple.com)
-
创建 App ID:Bundle ID 需与 UniApp 项目的 appid 保持一致-3
-
生成 CSR 文件:Mac 用户使用"钥匙串访问"生成,Windows 用户使用香蕉云编生成-8
-
创建证书:选择
iOS Distribution类型(同时支持 Ad Hoc 和 App Store)-8 -
下载 CER 文件并导出为 P12 格式(使用钥匙串访问或香蕉云编)-3
-
创建 Profile 描述文件:
- 真机测试选择 Ad Hoc(需添加设备 UDID)
- 上架发布选择 App Store-3
-
下载 Profile 文件并双击安装-2
三、HBuilderX 导出资源文件
-
打开 UniApp 项目,配置
manifest.json:- 设置应用名称、版本号
- 配置 Bundle ID(需与 Apple 后台一致)-2
-
导出资源:
text
复制下载
HBuilderX → 发行 → 原生App-本地打包 → 生成本地打包App资源 → 勾选iOS → 点击生成 -
导出成功后,资源文件位于:
项目目录/unpackage/resources/-1
四、配置 Xcode 工程
-
导入离线 SDK:解压下载的 iOS 离线 SDK,双击
HBuilder-Hello.xcodeproj打开-4-7 -
替换资源文件:
- 将导出的资源文件夹(如
__UNI__xxxxxx)拷贝到 Xcode 项目的Pandora/apps/目录下-4 - 替换原有的同名文件夹
- 将导出的资源文件夹(如
-
修改 control.xml:
- 路径:
Supporting Files/control.xml - 将
appid改为与manifest.json一致-4
- 路径:
-
配置签名(Signing & Capabilities) :
- 选择 Team(登录 Apple ID)
- Bundle Identifier 改为与 App ID 一致
- 勾选
Automatically manage signing或手动选择 Profile-7
-
配置 App Key:
- 登录 DCloud 开发者后台,创建应用并申请 iOS 离线打包 Key
- 在 Xcode 的
Info.plist中配置dcloud_appkey-7
-
其他配置:
五、编译打包
-
清理并编译:
text
复制下载
Product → Clean Build Folder(Command + Shift + K) Product → Build(Command + B) -
选择目标设备:
-
归档 Archive:
text
复制下载
Product → Archive -
导出 IPA:
六、真机调试(可选)
如需在真机调试:
七、常见问题与解决
| 问题 | 解决方案 |
|---|---|
| HBuilderX 与 SDK 版本不一致 | 确保两者版本号完全相同-4 |
| Profile 不包含当前设备 | Ad Hoc 包需先在开发者后台添加设备 UDID-4-8 |
| appkey 配置错误 | 检查 Info.plist 中的 dcloud_appkey 是否正确-7 |
| 找不到 PDRCore.h | SDK 版本与 HBuilderX 不匹配-4 |
| 模拟器编译成功但真机失败 | 确保 Build Settings 中 Build Active Architecture Only 设置为 NO |
温馨提示:如果是首次打包,建议先用模拟器运行验证工程配置正确,再尝试真机调试和导出 IPA-7。正式发布前需要移除 control.xml 中的 debug="true" 配置-4-7