# 打包生成 IPA
完成「多端应用」的模拟器或真机调试后,开发者可构建 IPA 并安装至 Apple 设备进一步测试,测试完成后亦可构建正式版的 IPA 用于提交 App Store进行审核,审核通过后即可上架。
# 一、开始构建
- 切换到「多端应用模式」,在工具栏中,点击「构建 - 打包生成 IPA」,
- 在弹出的「构建 IPA」面板中完成相关配置
# 二、基本信息
「构建 IPA」面板中基本信息来源于 project.miniapp.json
配置文件,每次构建时会自动拉取配置信息。
需注意:图标信息根据打包的类型不同,引用不同的配置,请注意分辨。
# 三、Bundle ID 和 Universal Link
Bundle ID
信息来源于多端应用控制台的配置
- 如创建的多端应用尚未绑定移动应用账号,则默认以平台分配的测试版
Bundle ID
构建的IPA
。 - 如创建的多端应用已绑定移动应用账号,则以移动应用配置的
Bundle ID
和Universal Link
构建 IPA
如需修改Bundle ID
信息,点击「去修改」跳转至多端应用控制台修改。具体参考此文档
# 四、证书配置
生成 IPA
需使用 Apple
证书和 Profile (mobileprovision)
文件,相关的配置以及说明如下:
# 1、临时签名
临时签名是指通过 Apple
账密自动管理签名证书和 Profile (mobileprovision)
文件等文件的生成和使用的方式。主要用于未注册 Apple
开发者账号的开发者临时测试使用,无法上架到 App Store
。
- 适用于免费
Apple
账号 - 如果
Apple AppID (Bundle ID)
还没注册,会自动注册Apple AppID (Bundle ID)
到登录的Apple
账号 Apple AppID (Bundle ID)
不会开启任何 capability(有的capability
并不支持免费账户的AppID(Bundle ID)
, 如Apple Pay
和In-App Purchase
等)- 需要通过 USB 将 iPhone 手机连接到电脑端,会自动注册该设备为该 Apple 账号的信任设备
- 会自动创建签名证书
- 自动生成
Development
的Profile
。如果该Apple AppID (Bundle ID)
之前已经创建Profile
,则会沿用旧的 - 每个应用程序的设备数量限制为
100
台 - 每个账号只能创建一个应用程序
- 生成的
IPA
无法上架到App Store
# 2、证书签名
证书签名是指通过手动创建管理 Apple 签名证书和 Profile (mobileprovision) 文件,并使用这些文件进行签名的方式。
- 适用于苹果个人账户(收费)/公司账户(收费)
- 可以按照文档注册 Apple AppID (Bundle ID)、创建证书和生成 Profile(mobileprovision) 文件等
- 使用苹果 Development 和 Ad-hoc 证书构建的产物可用于开发测试
- 使用苹果分发证书构建的产物可用于上架 App Store
如果构建的 IPA 要提交到苹果进行审核以及发布,需选择「证书签名」的方式,且构建的资源包类型要选择「正式版」
在构建时选「证书签名」且「使用分发证书」时,会需要设置 Certificate
(P12 文件) 和 Provisioning Profile
文件,以及 Certificate
(P12 文件) 的证书密码。
如不知道如何获得
Certificate
(P12 文件) 和Provisioning Profile
文件,请参考iOS 证书申请与配置的第三、四部分。
# (1) P12证书
参考此步骤文档 导出的 p12 文件。
需注意该文件需在项目目录下,建议创建一个单独的目录统一存放。
# (2) P12密码
在导出 p12
文件时设置的密码,这个操作在你的本机中完成。
# (3) Profile
参考此步骤文档 创建下载 mobileprovision
文件。
Not found: <<<< Updated upstream
需注意该文件需在项目目录下,建议创建一个单独的目录统一存放。 =======
- 资源包的类型分别有:正式版、开发版、开发版(支持远程调试)以及开发版(支持热更新),关于这几个版本的区别以及应用场景可查看版本介绍
Stashed changes
# (4) 签名证书名
直接填写 P12
证书名称后括号里的内容。
# 五、资源包配置
资源包的类型分别有:正式版、开发版、开发版(支持远程调试)以及开发版(支持热更新),关于这几个版本的区别以及应用场景可查看版本介绍
# 六、应用版本配置
应用版本信息来源于 project.miniapp.json
配置文件,每次构建时会自动拉取配置信息。
# 七、命令行构建
开发者可以使用命令行构建的方式构建 IPA
。
开发者需要将开发者工具升级至最新版 nightly,并先按照开发者工具命令行使用文档准备执行命令的环境,以及查看基础的用法。
按照如下步骤操作:
- 仔细阅读命令行的使用文档,根据文档执行
cli open --project
打开对应的项目。 - 没有登录需要
cli login
登录 - 成功进入项目后,执行
cli build-ipa
。
支持参数如下(对齐工具构建面板):
参数名 | 功能说明 | 是否必填 | 参数类型 |
---|---|---|---|
project | 项目路径,需要为系统绝对路径 | 是 | string |
output | 构建产物的保存路径,需要为系统绝对路径 | 是 | string |
isDistribute | 是否使用分发证书 | 否 | boolean |
isRemoteBuild | 是否启用远程构建(必须使用分发证书的情况下才能使用) | 否 | boolean |
profilePath | profile 文件地址,文件格式为 mobileprovision,相对项目根路径的相对路径 | 否(使用分发证书时必填) | string |
certificateName | 签名证书名 | 否(使用分发证书时必填) | string |
p12Path | p12 文件路径,文件格式为 p12,相对项目根路径的相对路径 | 否(使用远程构建时必填) | string |
p12Password | p12 密码 | 否(使用远程构建时必填) | string |
tpnsProfilePath | tpnsProfile 文件路径,相对项目根路径的相对路径 | 否 | string |
isUploadBeta | 是否上传内测版(不使用分发证书时才可使用) | 否 | boolean |
isUploadResourceBundle | 是否上传资源包 | 否 | boolean |
resourceBundleVersion | 资源包版本号 | 否 | string |
resourceBundleDesc | 资源包项目备注 | 否 | string |
versionName | 应用版本名称 | 否 | string |
versionCode | 应用版本号 | 否 | number |
versionDesc | 应用描述 | 否 | string |
证书签名示例:
/Applications/wechatwebdevtools.app/Contents/MacOS/cli build-ipa --project /Users/test/project/miniprogram/mini-1 --output /Users/test/Downloads --isDistribute true --isRemoteBuild false --profilePath distribute/distribute_com_tencentdonutminiapp_db.mobileprovision --certificateName 'XIAO TU (AN99464A2B)' --p12Path distribute/distribute.p12 --p12Password 123456 --tpnsProfilePath '' --isUploadBeta false --isUploadResourceBundle false --resourceBundleVersion '' --resourceBundleDesc '' --versionName 0.0.66 --versionCode 103 --versionDesc 一个简单的备注
云构建示例:
/Applications/wechatwebdevtools.app/Contents/MacOS/cli build-ipa --project /Users/test/project/miniprogram/mini-1 --output /Users/test/Downloads --isDistribute true --isRemoteBuild true --profilePath distribute/distribute_com_tencentdonutminiapp_db.mobileprovision --certificateName 'XIAO TU (AN99464A2B)' --p12Path distribute/distribute.p12 --p12Password 123456 --tpnsProfilePath '' --isUploadBeta false --isUploadResourceBundle false --resourceBundleVersion '' --resourceBundleDesc '' --versionName 0.0.66 --versionCode 103 --versionDesc 一个简单的备注