Ionic+Angular 开发移动应用七:打包APK文件
栏目: JavaScript · 发布时间: 7年前
内容简介:Ionic+Angular 开发移动应用七:打包APK文件
欢迎交换友链: Laker’s Blog–进击的程序媛
Github: https://github.com/younglaker
V信: lakerHQ (请注明‘来自博客’)
打包正式apk:
ionic build android -—release // 不带 —-release 就是测试包
然后会根据 config.xml
配置生成apk,在 root/platforms/android/build/ouputs/apk
里生成 android-release-unsigned.apk
,这个是未生成签名的apk
生成证书
keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
把demo换成你想要的名字
然后设置密码、回答一系列问题
注意:此demo.keystore证书要保留好,是app打包的唯一凭证,再生成就相当于另一个app
签名
官网上的命令我运行了报错,经过查找资料用了这个命令:
jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk android-release-unsigned.apk demo.keystore
替换以下内容
- demo.keystore:之前生成的keystore
- demo_signed.apk:自定义签名后的apk的名字
- android-release-unsigned.apk:之前build生成的文件
运行结果:
.... signing: res/xml/config.xml signing: res/xml/provider_paths.xml signing: resources.arsc jar signed. Warning: No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2126-09-10) or after any future revocation date.
最后的报错是说没有提供时间戳,不影响。此时已经生成一个签名的apk,可以在手机上安装运行。
常见报错:
Jar signer, Unable to open xxx.apk
keystore和未签名的apk不在一个路径,可以把他们剪切到一个目录下,或者在命令里指明路径,如:
jarsigner -verbose -keystore path/demo.keystore -signedjar path/demo_signed.apk android-release-unsigned.apk demo.keystore
优化
安装zipalign
sudo apt-get update
运行
zipalign -v 4 demo_signed.apk final.apk
final.apk即最终编译出来的带签名的app,可用于正式发布
-c Check alignment only (doesnotmodify file) -f Overwrite existing outfile.zip -p Page align stored shared object files -v Verbose output -z Recompress using Zopfli
卸载
# 普通卸载 sudo apt-get remove zipalign # 把相关依赖也卸载 sudo apt-get remove --auto-remove zipalign # 把配置和数据也删除 sudo apt-get purge zipalign # 把相关依赖、配置、数据卸载 sudo apt-get purge --auto-remove zipalign
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- Maven多模块项目打包前的一些注意事项(打包失败)
- tar打包如何不打包某一个文件夹(排除某些文件夹)
- iOS新手用swift写一个macos打包工具 一键打包到指定位置
- Android应用签名打包
- 多渠道打包
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。