一键安装
使用简单
原生体验
uni-app-pack-cli
uni-app 工程自动化自动化离线打包工具,可用于 CI/CD
支持HBuilderX
或vue-cli
创建的uni-app
项目
暂不支持iOS
、原生SDK,后面有需要再写
环境准备
若不想安装 jdk 和 android sdk,可以使用 docker 环境
- jdk1.8 环境
- Android SDK
安装
# 全局安装
npm install @xzcoder/pack-cli -g
# 项目安装
npm install @xzcoder/pack-cli -D
package.json
{
"scripts": {
"pack:android": "pack-cli --config your_config_file"
}
}
参数配置
以下参数可通过命令行参数指定,如:
pack-cli --android.appKey your_app_key
或通过pack-cli --config your_config_file
指定加载配置文件,支持JSON、YAML两种配置文件格式
# 打包工作路径,默认:'dist/pack'
workDir: 'dist/pack'
# 安卓项目配置
android:
# Android SDK 路径,默认读取环境变量 $ANDROID_HOME
sdk: your_android_sdk_path
# Android 模版工程下载路径(使用默认值即可)
templateDownloadUrl:
# uni-app 离线打包 appKey
appKey: your_uni_app_offline_packaging_key
# Android APP 包名
applicationId: your_package_name
# Android 证书配置
keystore:
# 证书文件路径
file: your_keystore_file_path
# 证书别名
alias: your_keystore_alias
# 证书密码
password: your_keystore_password
# Gradle JVM 参数
jvmArgs: -Xmx1024m -Dfile.encoding=UTF-8
# Android BuildTools 版本
buildToolsVersion: 30.0.3
# 项目类型,(HBuilderX|uni-cli|auto),默认auto自动识别
projectType: auto
# uni-cli 配置
uniCli:
# NodeJS 包管理器,支持 npm | yarn
pm: npm
# uni-cli 项目模版下载路径(使用默认值即可)
downloadUrl:
Docker
docker pull xzcoder/pack-cli
docker run -d --name pack-cli \
-v your_project_path:/home/project \ # 挂载项目目录
-v your_gradle_home:/root/.gradle \ # 持久化 gradle 缓存
xzcoder/pack-cli-alpine tail -f /dev/null
docker exec -it pack-cli sh
$/home/project: npm install && npm run pack:android
Pipeline
下面使用
.gitlab-ci.yml
举例
image: registry.cn-hangzhou.aliyuncs.com/xzcoder/pack-cli-apline:0.0.7
before_script:
- export GRADLE_USER_HOME=$(pwd)/.gradle
pack:
interruptible: true
stage: Build
script:
- |
npm install
./node_modules/.bin/pack-cli --android.sdk $ANDROID_HOME \
--android.appKey $CI_APP_KEY \
--android.applicationId com.xzcoder.test \
--android.buildToolsVersion "30.0.3" \
--android.keystore.file key.jks \
--android.keystore.alias $CI_KEYSTORE_ALIAS \
--android.keystore.password $CI_KEYSTORE_PASSWORD
artifacts:
paths:
- dist/apk/
cache:
key: "$CI_JOB_NAME"
paths:
- .gradle