ionic实战-签名android App/android打包

为什么要签名app

  • android app那么多,要给app一个唯一身份,有了这个唯一身份才能上传到app商店中
  • 升级应用时若包名一致但签名不一致,APP也会安装失败
  • 所以正式版app都要签名,还有许多我不知道的原因......

注意

  • 打包前先检查你的app id,先起一个不会和别人重复的名字.很多人还在使用默认的io.ionic.starter,请赶紧改了.一般命名是com.公司英文名称.应用英文名称
    ionic实战-签名android App/android打包_第1张图片

制作签名文件(.keystore文件)

  • 使用如下命令生成签名文件
    keytool -genkey -v -keystore 你起的名字.keystore -alias 你起的别名 -keyalg RSA -validity 10000
    ionic实战-签名android App/android打包_第2张图片
    生成签名(.keystore)文件的过程
ionic实战-签名android App/android打包_第3张图片
生成的.keystore文件

使用签名文件

签名方式一

  • 把上一部生成的签名文件复制到app根目录下
  • 然后在app根目录下创建一个名字为release-signing.properties的文件,这个文件的内容如下
storeFile=E://work_space//jianshu//ionic2_tabs//ionic2_tabs.keystore
keyAlias=ionic2_tabs
storePassword=ionic2_tabs
keyPassword=ionic2_tabs
ionic实战-签名android App/android打包_第4张图片
  • 再把刚创建的release-signing.properties文件复制到./platforms/android根目录下

找不到./platforms/android目录?执行命令cordova platform add android

  • 最后执行打包命令ionic cordova build android -releaseionic cordova build android --prod --release生成正式版app

真正的上线的版本都要使用--prod参数,这会压缩app,使app体积变小,启动更快.缺点是这个参数打包很慢,我这里大概需要5到10分钟

  • 其实release-signing.properties.keystore文件放到项目根目录是为了方便使用。因为./platform/android目录是动态生成的,release-signing.properties打包前需要放到此目录下,所以把release-signing.properties文件保存在项目跟目录下

签名方式二

  • 首先执行打包命令ionic cordova build android -releaseionic cordova build android --prod --release生成未签名的apk文件
    ionic实战-签名android App/android打包_第5张图片
  • 复制.keystore文件到未签名的apk目录下
    ionic实战-签名android App/android打包_第6张图片
  • 未签名的apk目录下执行签名命令jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore name.keystore android-release-unsigned.apk alias_name
    ionic实战-签名android App/android打包_第7张图片

注意签名命令执行完成,apk名字没有改变还是android-release-unsigned.apk,但实际是已经签名过的

最后

  • 对apk优化zipalign -v 4 已经签名的.apk apk别名.apk
    ionic实战-签名android App/android打包_第8张图片
  • 关于jarsignerzipalign等工具的详情请自行百度

你可能感兴趣的:(ionic实战-签名android App/android打包)