Ionic5项目android打包流程

  • 1、apk打包
  • 2、生成jks(Java Key Store)文件
  • 3、生成签名的apk文件
  • 4、apk文件优化与重命名

ionic开发好应用以后,需要先进行打包、签名、优化,才能在各大应用商店中进行发布,本文就apk的打包、签名、优化操作进行介绍。

1、apk打包

1.1 请先下载Android SDK,并配置环境变量ANDROID_HOME
1.2 在ionic项目根目录下通过指令添加android平台,具体如下:

ionic cordova platform add android

1.3 修改项目配置文件config.xml
主要修改的项:
widget 元素的id属性值和version属性的值

注:version 的值每次打包都需要修改一下

name、description、author等,具体如下:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.wongoing.mes" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"><name>MES</name><description>移动端MES</description><author email="zhenglibingaccp@126.com" href="http://www.coding123.cn/">郑立兵</author><content src="index.html" />
</widget>

1.4 已release方式打包项目,在项目根目录下执行如下命令:

ionic cordova build android --release

执行完毕后会生成未签名的apk文件app-release-unsigned.apk,如下图:

2、生成jks(Java Key Store)文件

2.1 前提条件是安装了JDK,并配置了环境变量(JAVA_HOME、PATH)
2.2 生成jks文件(Java Key Store)
在ionic项目根目录下执行以下命令:
keytool -genkey -v -keystore ’填你生成 的签名文件名称‘.jks -keyalg RSA -keysize 2048 -validity 10000 -alias ’填代称‘
具体执行如下:

keytool -genkey -v -keystore com.wongoing.mes.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mes

会提示输入密钥库口令等信息,如下

输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?[郑]:  郑立兵
您的组织单位名称是什么?[弯弓信息]:  xxx
您的组织名称是什么?[数据服务]:  数据服务
您所在的城市或区域名称是什么?[青岛]:  青岛市
您所在的省/市/自治区名称是什么?[山东省]:
该单位的双字母国家/地区代码是什么?[ZH]:  zh-CN
CN=郑立兵, OU=xxx, O=数据服务, L=青岛市, ST=山东省, C=zh-CN是否正确?[否]:  Y正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):CN=郑立兵, OU=xxx, O=数据服务, L=青岛市, ST=山东省, C=zh-CN
输入 <mes> 的密钥口令(如果和密钥库口令相同, 按回车):
[正在存储com.wongoing.mes.jks]

这是在项目根目录下就生成了xxx.jks文件了,这些信息你需要记住,其中-alias mes别名每次执行都不能相同。

3、生成签名的apk文件

3.1 创建一个工作目录,d:\android-apk
3.2 把之前生成的app-release-unsigned.apk文件和com.wongoing.mes.jks文件复制到此目录下
3.3 打开cmd或Windows Powershell,然后定位当前目录至工作目录下d:\android-apk
3.4 执行签名命令
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 [-tsa ‘时间戳生成地址’] -keystore ’填你签名文件名称‘.jks app-release-unsigned.apk ’填代称‘
进行签名,这样就会生成一个 已签名的包。具体命令案例如下:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -tsa http://timestamp.comodoca.com/authenticode -keystore com.wongoing.mes.jks app-release-unsigned.apk mes

如果时间戳网站不可用请更换,常用免费时间戳网址

  • http://time.certum.pl/
  • http://sha256timestamp.ws.symantec.com/sha256
  • http://timestamp.comodoca.com/rfc3161
  • http://tsa.wosign.com/timestamp
  • http://tsa.starfieldtech.com
  • http://timestamp.globalsign.com/scripts/timstamp.dll
  • http://rfc3161timestamp.globalsign.com/advanced
  • http://timestamp.digicert.com
  • http://timestamp.verisign.com/scripts/timestamp.dll
  • http://timestamp.entrust.net/TSS/AuthenticodeTS

[-tsa]部分可选,但是如果不写-tsa部分,会导致签名文件报警:警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。这样会导致部分手机无法安装,因此还是建议加上-tsa参数。

什么是时间戳?
时间戳(mestamp)是指在一我们签好名的代码中加入辨识文字,如时间或日期,用以保障本地端资料更新顺序与远端服务器端一致。

时间戳在代码签名证书中的应用
VeriSign 或 Thawte代码签名证书可支持一到三年有效期。一般我们开发的软件的生命周期都会更长,为了保证用数字证书签名后的软件代码在证书到期后仍然有效,我们就必须使用时间戳技术。当我们对代码进行数字签名时,将会产生希哈值发送给时间戳服务器进行时间戳反签名。这样,当用户下载签名代码后,IE等网络浏览器将进行鉴别: (a) 如果是代码签名证书已经过期,用该证书签名的软件代码将不会被信任;(b) 用有效的代码签名证书签名的代码,即使代码签名证书已经到期,但代码仍然是可信的。维瑞代理VeriSign、Thawte代码签名证书免费为客户提供时间戳服务,是为了方便软件开发商可以不用担心由于代码签名证书过期而影响在有效期内已经签名的代码的正常的使用,也就是说,在代码签名证书有效期内签名的代码使用时间戳后永远不会过期。

免费时间戳URL
目前列出的时间戳服务都在国外;在添加时间戳的时候,要确保的你的网络能访问国外,否则会签名不成功。Verisign 时间戳URL: http://timestamp.verisign.com/scripts/timstamp.dll Comodo 时间戳URL: http://timestamp.comodoca.com/authenticode GeoTrust/TrustCenter: http://www.trustcenter.de/codesigning/timestamp

4、apk文件优化与重命名

执行完上面的操作后,d:\android-apk\app-release-unsigned.apk文件已经是签名过的文件了。

Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。因此,这种方式能够让应用程序和整个系统运行得更快。我们强烈推荐在新的和已经发布的程序上使用zipalign工具来得到优化后的版本。

在工作目录下执行以下命令
android-sdk目录\build-tools\版本\zipalign -v 4 app-release-unsigned.apk ’填写你优化后的包的名称加.apk‘
对apk文件进行优化和重命名,具体案例如下:
工作目录为d:\android-apk

D:\android-sdk-windows\build-tools\29.0.3\zipalign -v 4 app-release-unsigned.apk com.wongoing.mes.apk

执行完毕后会在工作目录下就会出现一个新的apk文件:com.wongoing.mes.apk
这样就可以在手机上安装com.wongoing.mes.apk了也可以把com.wongoing.mes.apk发布到各大渠道平台的应用商店上了。

Ionic5项目android打包流程相关推荐

  1. Android打包流程-签名

    编译任务 META-INF主要用来存储当前的apk的签名信息, 与AP相关的签名信息有下面两个: validateSigningDebug packageDebug 校验签名文件 会先通过valida ...

  2. 【字节码插桩】Android 打包流程 | Android 中的字节码操作方式 | AOP 面向切面编程 | APT 编译时技术

    文章目录 一.Android 中的 Java 源码打包流程 1.Java 源码打包流程 2.字符串常量池 二.Android 中的字节码操作方式 一.Android 中的 Java 源码打包流程 Ja ...

  3. Android 打包流程

    首先处理资源,生成R文件,然后处理aidl,之后把所有的java 源文件编译成class文件,之后进行混淆,然后生成dex文件,之后把资源.dex 打成一个没有签名的包,最后执行签名. https:/ ...

  4. Android中APK打包流程

    aapt: android application package tool,SDK (Android打包流程图) #Android打包流程 1.通过aapt工具将 资源文件(res).清单文件(An ...

  5. rn android mac打包,React-Native之MAC平台Android apk打包流程

    MAC :Android打包流程7步走:(详情参照英文官网) 1).使用keytool首先生成keystore(包含storeFile file.storePassword .keyAlias .ke ...

  6. 安卓逆向_1 --- 逆向环境配置、APK 文件结构、APK 打包流程

    哔哩哔哩:https://www.bilibili.com/video/BV1UE411A7rW?p=1 Android 逆向工程师系统培训‹第九期›( 课程目录 ):https://ke.yijin ...

  7. Android 打包流程之aapt打包资源文件

    上一篇:Android打包流程之资源管理 Android应用最终是以apk的形式放在手机上安装并运行的,而负责将资源文件和代码进行打包的工具就叫appt,全称Android Asset Packagi ...

  8. 安卓打包流程一篇文章就够了

    作为一个安卓开发,如果你对安卓打包流程还不熟悉的话?不妨看看这篇文章.本文会带你深入了解安卓打包流程的各个细节.更重要的是,熟悉安卓打包流程会让你对apk瘦身.参数化构建.资源文件处理有更深的理解. ...

  9. java打包apk_Android中APK打包流程

    aapt: android application package tool,SDK (Android打包流程图) #Android打包流程 1.通过aapt工具将 资源文件(res).清单文件(An ...

  10. android打包发布流程,从源文件到APK-Android打包流程

    ====================================================== 原文链接https://juejin.im/entry/58b78d1b61ff4b006 ...

最新文章

  1. 知乎「致知计划之科学季」颁奖,创作者分享80万元奖金
  2. 微信内置浏览器无法清除缓存问题
  3. Android学习笔记18-自定义Seekbar拖动条式样
  4. frontpage中html编辑,FrontPage教程编辑网页
  5. js判断是否是ie浏览器
  6. Sqlite3 for Linux 可视化工具
  7. C++笔记——析构函数
  8. Spring Boot项目实战:BBT版西蒙购物网
  9. 学生使用计算机违纪处理,软件学院违纪学生跟踪教育管理办法
  10. 保证一致性吗_谈了千百遍的缓存数据一致性问题
  11. 向已知EXCEL模板写入数据并导出
  12. C++课设:GUI电话簿程序
  13. matlab拟合度R方,...1),问题是什么是拟合优度?、R^2大于多少说明拟合度很好,R^2在...-拟合度-数学-冀群是同学...
  14. Windows 10无线网连不上怎么办-旧时光 oldtimeblog
  15. (二十九)树莓派3B+ 获取BH1750FVI光强度传感器数据
  16. 浏览器缓存机制,强缓存,弱缓存
  17. 自然语言处理总复习(九)—— 机器翻译
  18. IT运维:服务器管理
  19. 为了防止同行偷窥行业机密,小明决定将上面的实际营业额重新记录一份,这次记录的时候,把上面数组中的内容倒着记录,并将所有的负数按0记录。请你帮小明把上面的结果按小明的规则重新保存到一个新数组中,并打印出
  20. 区块链共识协议最详细的分析

热门文章

  1. pygame写简单推箱子游戏
  2. 计算机视觉与机械专业相关吗,计算机视觉在早期森林火灾探测中的应用研究-精密仪器及机械专业论文.docx...
  3. 微信小程序的APPID问题
  4. hobbits.me+霍比特+php,霍比特人:意外之旅(MP3+中英字幕) 第24期:飞贼霍比特人
  5. php 获取新浪股票行情数据,获取新浪实时股票行情数据
  6. 金融分析与风险管理——期权BSM模型
  7. springboot+vue+elementUI 校园志愿者管理系统#毕业设计
  8. c语言建立文件的时候会飞动,C语言:简单而不易懂的声明(二)
  9. Image Processing and Analysis_15_Image Registration:Image registration methods a survey——2003
  10. 在 Linux 下执行 bin 文件