欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

ionic app打包和签名

程序员文章站 2022-03-28 11:50:52
ionic app打包和签名 1、首先在项目根目录执行 ionic platform add android 生成Android平台。 2、配置应用签名:在根目录下执行以下命令 命令说明: 结果如下:会在根目录生成一个myApp.keystore的文件 3、使用build命令编译一个应用的发布版本, ......

ionic app打包和签名

 

  1、首先在项目根目录执行  ionic platform add android  生成android平台。

 

  2、配置应用签名:在根目录下执行以下命令

keytool -genkey -v -keystore myapp.keystore -alias myapp -keyalg rsa -keysize 2048 -validity 20000

  

  命令说明:

   -genkey                         产生密钥 
    -alias pbneoc.keystore          别名 demo.keystore 
    -keyalg                         rsa 使用rsa算法对签名加密 
    -validity 20000                 有效期限2000天 
    keysize:                        大小
    -keystore pbneoc.keystore       证书的别名

  

  结果如下:会在根目录生成一个myapp.keystore的文件

ionic app打包和签名

 

  3、使用build命令编译一个应用的发布版本 在platforms\android\build\outputs\apk下找到android-release-unsigned.apk文件,把它移动到根目录下(跟myapp.keystore同目录)。以防签名的时候找不到jar文件

ionic build --release android

 

   4、签名应用文件:把已经生成的  android-release-unsigned.apk  文件移到项目根目录下,不然可能会报错"无法打开 jar 文件: android-release-unsigned.apk"。在终端命令窗口进入到项目根目录。执行以下命令:

jarsigner -verbose -sigalg sha1withrsa -digestalg sha1 -keystore myapp.keystore android-release-unsigned.apk myapp

  过程会需要一点时间,期间会提示输入keystore的密码密钥,命令会修改apk文件并对其进行签名。

 

  命令说明:

jarsigner                         是工具名称
-verbose                        表示将签名过程中的详细信息打印出来,显示在控制台窗口中
-keystore myapp.keystore               之前生成的证书 ,表示签名所使用的数字证书所在位置/名字(同目录)
-signedjar (后面的路径是你要签名apk的路径)        表示给apk工程目录下的 android-release-unsigned.apk 文件签名
myapp                          表示证书的别名,对应于生成数字证书时-alias参数后面的名称

 

  5、验证apk是否签名成功:出现一堆信息

jarsigner -verify -verbose -certs android-release-unsigned.apk

 

  6、查看签名的信息

keytool -printcert -file meta-inf/*.rsa

 

   7、可选择执行以下命令:优化apk文件-----减少在设备上占用的空间和内存。我们使用zipalign工具,它使用签名后的apk文件生成一个优化后的apk版本,用于应用上传。

添加环境变量:
    path:d:\androidsdk\android-sdk-windows\build-tools\23.0.3



在项目根目录下执行命令:
    jarsigner -verify -verbose -certs android-release-unsigned.apk

 

  成功的显示:

  ionic app打包和签名