Cordova移动应用的打包、签名与发布


Apache Cordova是Apache基金会支持的一套开源移动APP底层编译工具,可以与任何前端框架结合,完成基于H5的跨平台移动开发编译。
所开发的移动应用可通过添加不同的编译平台(platform),实现同一套代码面向Android、ios,以及华为鸿蒙等不同手机系统的部署和运行,因而具有良好的灵活性、移植性和通用性。

那么,开发完成后的Cordova工程,应该如何完成打包、签名和向应用市场的发布呢?

1、制作带图标和启动画面的app发布版本

(1)制作图标和APP启动画面

首先制作app安装到手机的图标和启动画面,需要根据手机屏幕的不同型号大小制作不同尺寸的图片(一般为png格式),并放入工程目录的res目录下。例如: 制作不同大小的图片存入:

注:关于更多cordova的icon的自定义可参考官网:

(2)在app中配置

工程中加入如下插件:

cordova plugin add cordova-plugin-splashscreen

打开工程目录下的config.xml,在末尾加入如下语句,并保存:

<preference name="AutoHideSplashScreen" value="true" />
    <preference name="SplashScreenDelay" value="3000" />
    <preference name="ShowSplashScreenSpinner" value="true" />
    <preference name="SplashShowOnlyFirstTime" value="false" />

    <platform name="android">
        <icon src="res/icon/android/myicon.png" />
        <splash src="res/screen/android/myscreen.png" />
    </platform>
    <platform name="ios">
        <icon height="128" src="res/icon/ios/myscreen.png" width="128" />
    </platform>

注:关于更多cordova的config.xml的定义可参考官网:

(3)打包生成发布的版本

    注:以myApp工程制作面向Android的应用为例说明。

cordova工程的编译命令cordova build的命令参数如下:

采用不同的编译参数,可产生debug和release两个版本的结果。

    debug版本:用于调试 release版本 :用于发布到应用商店

生成的apk文件将保存于:

所建工程目录platformsandroidappuildoutputsapk

例如,执行如下命令生成最终的release版本apk:

生成的apk位置:

2、应用程序签名

(1)生成keystore数字签名文件

用以下命令生成签名文件,其中release-key.keystore是自己命名的签名文件名:

keytool -genkey -v -keystore release-key.keystore -alias cordova-demo -keyalg RSA -keysize 2048 -validity 10000

其参数含义: 更详细的可用help查看:

keytool -help

生成中,按提问回答签名信息,并记住所设置的密钥库口令。 完成后,会出现个提示: 按提示完成迁移后,在当前目录中即生成了包含所设置信息的release-key.keystore签名文件。

(2)用签名文件为app签名

    为避免命令过长,先拷贝签名文件到待签名apk文件目录(apk编译后在platforms/android/app/build/outputs/apk/release/目录) 然后,用以下命令为app-release-unsigned.apk文件签名,并生成app-release-signed.apk文件。(注意是一行,中间用空格分隔):
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore release-key.keystore –signedjar 
app-release-signed.apk app-release-unsigned.apk cordova-demo

签名结果:

(3)优化签名文件

生成的签名文件,可以用android提供的build tool工具zipalign进行优化,语法如下: 命令:

D:Androidandroid-sdkuild-tools29.0.2zipalign -v 4 app-release-signed.apk app-release-signed-aligned.apk

3、发布应用程序

发布方式包括:

    (1)将签名后的apk文件提供给使用者 (2)发布到应用商店
经验分享 程序员 微信小程序 职场和发展