# 打包生成 IPA
在完成多端应用的模拟器调试或者真机后,开发者可构建 IPA 并安装至手机进一步测试,测试完成后亦可构建正式版的 IPA 用于提交 App Store进行审核,审核通过后即可上架。
- 前往工具栏,点击「构建 - 打包生成 IPA」,进入云构建面板中完成相关配置即可生成 IPA
# 一、基本信息
- 基本信息来源于
project.miniapp.json
,如开发者需修改可前往project.miniapp.json
修改
# 二、Bundle ID 和 Universal Link
- Bundle ID 信息来源于多端应用控制台的配置,如开发者所创建的多端应用尚未绑定移动应用账号,则默认以平台分配的测试版 Bundle ID 构建的 IPA
- 如开发者所创建的多端应用已绑定移动应用账号,则以移动应用配置的 Bundle ID 和 Universal Link 构建 IPA
- 开发者如需修改,点击「去修改」即可跳转至多端应用控制台进行修改
- 详细操作指引为:多端应用 Bundle ID 配置
# 三、证书配置
生成 iOS 的安装包需使用 Apple 证书和 Profile (mobileprovision) 文件,相关的配置以及说明如下:
# 1、临时签名
临时签名是指通过 Apple 账密自动管理签名证书和 Profile (mobileprovision) 文件等文件的生成和使用的方式:
- 适用于免费 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 要提交到苹果进行审核以及发布,需选择「证书签名」的方式,且构建的资源包类型要选择「正式版」
- 选择「证书签名」点击确定稍等片刻后,需开发者输入“签名证书名”
- 签名证书名可以在「钥匙串访问 - 我的证书」中查看
- 补充:如果提示证书无效,则需要安装Apple全球开发者关系认证媒介中间证书。
- 选择 profile:Provisioning Profile ,即后缀名为 .mobileprovision,需要是发布用证书
# 四、资源包配置
- 资源包的类型分别有:正式版、开发版、开发版(支持远程调试)以及开发版(支持热更新),关于这几个版本的区别以及应用场景可查看版本介绍
# 五、应用版本配置
- 应用版本信息来源于
project.miniapp.json
,如开发者需修改可前往project.miniapp.json
修改
# 六、命令行构建
*** 需要将开发者工具升级至最新版 nightly ***
开发者可以使用命令行构建的方式构建 IPA 。开发者需要先按照开发者工具命令行使用文档准备执行命令的环境,以及查看基础的用法。
按照如下步骤操作:
- 首先仔细阅读命令行的使用文档
- 根据文档执行 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 一个简单的备注