# 通过 CI 打包(miniprogram-ci)
开发者可通过 miniprogram-ci 构建 APK 和 IPA,开发者需要先学习miniprogram-ci使用。
# 1、安装
npm install miniprogram-ci@alpha
# 2、构建 APK
# 示例代码
const ci = require('miniprogram-ci')
;(async () => {
const project = new ci.Project({
appid: 'wxsomeappid',
type: 'miniProgram',
projectPath: 'the/project/path',
privateKeyPath: 'the/path/to/privatekey',
ignores: ['node_modules/**/*'],
})
const buildResult = await ci.buildApk({
project,
keyAlias: 'keyAlias',
keyPass: 'keyPass',
keyStore: 'the/path/to/keystore',
storePass: 'storePass',
output: '/the/path/to/output',
desc: 'build apk from ci',
})
console.log(uploadResult)
})()
# 参数
# 请求参数
- 同时支持传入 ci.uploaod 的参数
| 键 | 类型 | 必填 | 说明 |
|---|---|---|---|
| project | IProject | 是 | #项目对象 |
| keyStore | string | 是 | 证书文件绝对路径 |
| keyPass | string | 是 | 证书密码 |
| storePass | string | 是 | 证书文件密码 |
| keyAlias | string | 是 | 证书别名 |
| output | string | 是 | 构建产物的保存路径,需要为系统绝对路径 |
| useAab | boolean | 否 | 默认 false |
| desc | string | 否 | 版本描述 |
| isUploadResourceBundle | boolean | 否 | 是否上传资源包 |
| resourceBundleVersion | string | 否 | 资源包版本号 |
| resourceBundleDesc | string | 否 | 资源包项目备注 |
| disableCache | boolean | 否 | 是否清除构建缓存 |
# 返回参数
| 键 | 类型 | 必填 | 说明 |
|---|---|---|---|
| errmsg | string | 构建信息 | |
| success | boolean | 构建是否成功 |
# 3、构建 IPA
支持本地构建与远程构建。本地构建 Ipa 仅支持在 macOS 上使用 codesign 进行签名,因此开发者需要确保 keychains 中包含自己的证书信息。windows 可以使用远程构建。
# 示例代码
const ci = require('miniprogram-ci')
;(async () => {
const project = new ci.Project({
appid: 'wxsomeappid',
type: 'miniProgram',
projectPath: 'the/project/path',
privateKeyPath: 'the/path/to/privatekey',
ignores: ['node_modules/**/*'],
})
const buildResult = await ci.buildIpa({
project,
output: '/the/path/to/output', // 构建产物的保存路径,需要为系统绝对路径
profilePath: '/the/path/to/profile', // profile 文件地址,文件格式为 mobileprovision,相对项目根路径的相对路径
certificateName: 'Apple Develop', // 签名证书名
tpnsProfilePath: '/the/path/to/tnpsprofile', // tpnsProfile 文件路径,相对项目根路径的相对路径
})
console.log(uploadResult)
})()
# 参数
# 参数
同时支持传入 ci.uploaod 的参数。
| 键 | 类型 | 必填 | 说明 |
|---|---|---|---|
| project | IProject | 是 | #项目对象 |
| output | string | 是 | 构建产物的保存路径,需要为系统绝对路径 |
| isDistribute | string | 否 | 是否使用分发证书 |
| profilePath | string | 是 | profile 文件地址,文件格式为 mobileprovision,相对项目根路径的相对路径 |
| certificateName | string | 是 | 证书别名 |
| tpnsProfilePath | string | 否 | tpnsProfile 文件路径,相对项目根路径的相对路径 |
| p12Path | string | 否 | p12 文件路径,文件格式为 p12,相对项目根路径的相对路径。使用远程构建时必填 |
| p12Password | string | 否 | p12 密码。使用远程构建时必填 |
| desc | string | 否 | 版本描述 |
| isUploadResourceBundle | boolean | 否 | 是否上传资源包 |
| resourceBundleVersion | string | 否 | 资源包版本号 |
| resourceBundleDesc | string | 否 | 资源包项目备注 |
| disableCache | boolean | 否 | 是否清除构建缓存 |
| isRemoteBuild | boolean | 否 | 是否使用远程构建 |
# 返回
| 键 | 类型 | 必填 | 说明 |
|---|---|---|---|
| errmsg | string | 构建信息 | |
| success | boolean | 构建是否成功 |
# 4、上传资源包
# 示例代码
const ci = require('miniprogram-ci')
;(async () => {
const project = new ci.Project({
appid: 'wxsomeappid',
type: 'miniProgram',
projectPath: 'the/project/path',
privateKeyPath: 'the/path/to/privatekey',
ignores: ['node_modules/**/*'],
})
const uploadResult = await ci.miniappCloudUpload({
project,
version: '0.1.24',
androidPlatform: false,
setting: {
es6: true,
},
})
console.log(uploadResult)
})()
# 参数
# 参数
同时支持传入 ci.uploaod 的参数。
| 键 | 类型 | 必填 | 说明 |
|---|---|---|---|
| project | IProject | 是 | #项目对象 |
| version | string | 是 | 版本号 |
| desc | string | 否 | 版本描述 |
| iOSPlatform | boolean | 否 | 适用平台 iOS,默认为 true |
| androidPlatform | boolean | 否 | 适用平台 Android,默认为 true |
# 返回
| 键 | 类型 | 必填 | 说明 |
|---|---|---|---|
| errmsg | string | 构建信息 | |
| success | boolean | 构建是否成功 |