背景
当鸿蒙App开发完后需要提测,如何将App文件发给QA安装测试,是一件麻烦事,因为鸿蒙App并不能像Android Apk那样可以直接安装到设备中,能想到的方式有:
- 直接叫测试拿手机过来安装
- 让测试安装DevEco Studio 拉代码编译安装
上面的方式显然是不可取的,鸿蒙App的安装过程相对复杂,需要手动执行一系列命令行操作,为了简化这个过程,可以通过一个脚本从而实现一键安装。如果再结合构建脚本,可以实现打包、发布、安装一条龙,减少中间手动环节。
当然官方也提供了邀请链接和DeepLink链接方式,但这两种方式是需要审核或者专业的>组织内部发布证书,对及时响应并不友好。
鸿蒙app一键安装脚本
可以像安卓一样在电脑上执行命令行来安装鸿蒙应用,支持在windows和mac上运行。
准备工作
使用前请确保你的电脑上已经安装并配置了环境变量:
- Windows:Java JDK 17 或更高版本; Mac: Java JDK 11 或更高版本
- Python 3
使用方法
安装脚本
命令:
python ohos-app-install.py <包名> <app文件路径> [签名文件下载链接]
参数:
- 第1个参数:应用包名
- 第2个参数:app文件路径,可以是网络链接,也可以是本地文件路径
- 第3个参数:签名文件的下载链接,可选的,首次使用或更新签名时需要,有固定的格式。
例子:
python ohos-app-install.py com.hzw.dsbridge dsbrige-demo-default-unsigned.app https://gitee.com/common-apps/ohos_tools/raw/master/sign.zip
或者直接通过网络链接安装:
python ohos-app-install.py com.hzw.dsbridge https://gitee.com/common-apps/ohos-py/raw/master/dsbrige-demo-default-unsigned.app
sign.zip 的文件格式如下:
ohos-app-install.py
sign
├── sign-config.json # 配置文件
└── yyy/ # 证书目录
└── xxx.cer
└── xxx.p7b
└── xxx.p12
sign-config.json 的文件格式如下:
json
{
"configs": [
{
"package_name": "com.hzw.dsbridge",
"app_cert_file": "sign/yyy/xxx.cer",
"profile_file": "sign/yyy/xxx.p7b",
"keystore_file": "sign/yyy/xxx.p12",
"key_alias": "hzw",
"key_pwd": "h123456789",
"keystore_pwd": "h123456789"
}
]
}
注意:测试环境仅提供测试签名文件。在正式环境中,应用签名应该在服务器端完成以确保安全性。 签名文件除了命令行链接下载,还可以按照格式放在脚本同目录下 。
生成exe/unix执行文件 - 可选
如果想更方便的使用,可以将脚本转换为可执行文件,Windows和Mac都支持。
创建配置,在根目录创建confog.json,内容如下:
{
"app_url": "",
"package_name": "",
"sign_url": ""
}
生成执行文件命令:
pyinstaller ohos-gen-app.spec
如果在执行pyinstaller命令时报错command not found: pyinstaller
,则需要安装pyinstaller 执行pip3 install pyinstaller
,在安装过程报错 error: externally-managed-environmen,可以在虚拟环境中安装,如下:
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
# 安装 pyinstaller
pip install pyinstaller