ioinic3---DOS命令下apk签名打包及常见问题解决

Android apk签名批处理脚本 替换签名私钥文件 复制ba脚本t快捷方式到上一层文件夹 待签名apk拖到脚本t快捷方式图标上即可 立即下载

一、在DOS命令下对apk进行签名

首先我们需要将ionic项目中src目录里面的内容同步到android中,在使用DOS命令的时候一定要使用ionic cordova build android -release。  而不是ionic cordova build android.这样的签名生成的apk才能在手机上正常运行,否则可能出现“签名校验失败”的提示。

        然后在DOS命令中需要将我们的目录定位到ionic项目中的platforms/android目录下执行,否则可能会导致无法正常安装。

        在DOS命令下给apk签名一共需要用到3个工具(命令),分别是keytool、jarsigner和zipalign,下面附上对这3个工具的介绍:

 

  • keytool:生成数字证书,即密钥,是一个扩展名为.keystore的文件;
  • jarsigner:使用数字证书给apk文件签名
  • zipalign:对签名后的apk进行优化,提高与Android系统交互的效率(Android SDK1.6及以后版本开始包含此工具)

        这3个工具的执行顺序也如上所示。通常我们自己开发的应用,都是使用相同的签名,即使用同一个数字证书,这说明了如果你第一次做apk的签名,那上面3个工具都将用到,但如果你已经有数字证书了,那以后在给其他apk签名时,只需要用到jarsigner和zipalign这两个工具就可以了。下面给出了这3个工具默认所在的路径

  • keytool:位于jdk安装路径的bin目录下
  • jarsigner:位于jdk安装路径的bin目录下
  • zipalign:位于sdk安装路径的tools目录下

        为了使用方便,我们可以将这3个工具所在的路径添加到环境变量path中,但是一般我们安装jdk和sdk之后通过配置环境变量已经将路径添加到path中了。

        扩展:从上面的路径可以看到,keytool和jarsigner这两个工具是jdk自带的,也就是说生成数字证书和文件签名并不是android的专利,另外从字面上理解jarsigner也能猜想到该工具主要是用来给jar文件签名的。

        

        下面将要讲解在DOS命令下如何对apk进行签名:

         1.使用keytool工具生成数字证书

  

 keytool -genkey -v -keystore myself.keystore -alias myself.keystore -keyalg RSA -validity 20000

        说明:

  • keytool是工具名称,-genkey意味着执行的是生成数字证书的操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中
  • -keystore myself.keystore 表示生成的数字证书的文件名为“myself.keystore”
  • -alias myself.keystore 表示证书的别名为"myself.keystore“,当然可以不和上面的文件名一样
  • -keyalg RSA表示生成密钥文件所采用的算法为RSA;
  • -validity 20000 表示该证书的有效期是20000天,意味着20000天后该证书将失效

        在执行上面的命令生成数字证书文件时,会提示输入一些信息,包括证书的密码,还会出现是否确定?填写y,回车,示例如下:

       (注意:我在win10系统下输入密码在DOS系统中不会显示出来,但确实是输入进去了,不要怀疑你的键盘出了问题)

命令完成后会在当前目录中生成myself.keystore文件

 

 

如果想要查看签名的相关信息,在DOS命令行中输入:

keytool -list -keystore "myself.keystore"  输入你设置的keystore密码

         注意要在keystore所在的目录下,或者将keystore的完整路径填入

 

2.使用jarsigner工具为apk签名

2.1 jdk1.6版本命令:

jarsigner -verbose -keystore myself.keystore -signedjar demo_signed.apk demo.apk myself.keystore
  • jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来,显示在dos窗口中
  • -keystore myself.keystore表示签名所使用的数字证书所在位置,这里没有写路径,表示在当前目录下

如果不在当前文件夹下需要添加路径,示例如下:

jarsigner.exe -verbose -keystore d:\aa\myself.keystore -storepass android -signedjar d:\aa\demo_signed.apk d:\aa\demo.apk myself.keystore

 

  • signedjar demo_signed.apk demo.apk 表示给demo.apk文件签名,签名后文件名称为demo_signed.apk
  • 最后的myself.keystore表示证书的别名,对应于数字证书时-alias参数后面的名称

2.2 jdk1.8命令:(jdk1.8算法发生了变化,需要指定 -sigalg和-digestalg)

 

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myself.keystore -storepass android -signedjar demo_signed.apk demo.apk myself.keystore

 

在这里需要注意-storepass android 是我们直接输出了keystore文件的密码,android即我设置的密码,这里需要改成你自己的。如果不想直接写上去也可以去掉,执行命令后会提醒你输入密码。

其余的命令在2.1里已经讲过了

 

3.使用zipalign工具优化已经签名的apk(非必须但是建议这么做)

zipalign -v 4 demo_signed.apk demo_signed_aligned.apk

说明:

  • zipalign是工具名称,-v表示在DOS窗口打印出详细的优化信息;
  • demo_signed.apk demo_signed_aligned.apk表示已经对签名文件demo_signed.apk进行了优化,优化后的文件名为demo_signed_aligned.apk

说明:如果你以前的程序是采用默认签名方式(即debug签名),一旦换了新的签名应用将不能覆盖安装,必须将原先的程序卸载掉,才能安装上

 

以上参考:http://www.cnblogs.com/share123/p/5900583.html

 

二、对于apk签名可能遇到的问题如下:

1.在进行重签名的时候无法对jar进行签名

提示”jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 7502 but got 6912 bytes)“,如图

 

解决办法:把要重签名的apk后缀改成zip,打开后删除里面的META-INF目录,然后重新改成apk后缀,最后在对这个apk进行签名即可

android rom自动签名工具 auto-sign android rom自动签名工具。 使用方法: 1)安装并配置好JAVA 2)将auto-sign解压到任意目录(需要自己能找到) 3)将改好的包改名为update.zip 4)将update.zip 文件复制到签名工具的目录下 5)运行 Sign.bat 。也许有人要问如何运行,我会非常认真的告诉大家:双击:) 6)需要一点时间,目录下会多出一个update_signed.zip文件 7)这个文件就是已经经过签名的刷机包 立即下载

相关推荐

jarsigner重新签名apk无法安装的解决方法

主要介绍了jarsigner重新签名apk无法安装的解决方法,需要的朋友可以参考下

jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size

使用如下命令签名时 jarsigner -verbose -sigalgSHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore WebViewTest.apk mytest 遇到如下问题: jarsigner: 无法对 jar 进行签名:java.util.zip.ZipException: invalid entry co

lufqnuli的博客 9908

【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍 (1)TX方向 麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。 (2)RX方向 音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。 二、分析步骤 1...

crow_ch的博客 5975

重签名提示:无法对 jar 进行签名: java.util.zip.ZipException

使用jarsigner对APK重签名,提示:jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 41278 but got 42575 bytes) bytes) 最后解决办法是:把要重签名的apk后缀改成zip,打开后删除里面的META-INF目录,然

wpyily的专栏 1万+

MATLAB实战:用Costas环和Gardner环搞定QPSK同步问题(附完整代码)

本文详细介绍了如何使用MATLAB实现Costas环和Gardner环联合解决QPSK同步问题,包括载波同步和定时同步的技术原理、MATLAB代码实现及性能分析。通过完整的仿真示例和工程实践建议,帮助读者掌握QPSK同步技术的核心要点,提升数字通信系统的解调性能。

agile9scrum的博客 691

Carla-UE4Editor导入RoadRunner地图文件(保姆级教程)

以Carla官网导入RoadRunner地图的标准文档为参考,里面增添了很多细节和注意事项,遇到问题的小伙伴过来看看吧。

DSK_981029的博客 1万+

java不能签名_jarsigner签名出现的几种问题:无法对jar进行签名:java.util.zip.ZipException:invalidentrycompressedsize(expecte...

问题一:jarsigner: 无法打开 jar 文件: ChangeBackgroundWidget.apk我的解决方法是:将要进行签名的APK放到对应的文件下,如我把要签名的ChangeBackgroundWidget.apk放到JDK的bin文件里。问题二:jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry co...

weixin_42220853的博客 2009

cordic算法的FPGA实现

cordic 算法的MATLAB仿真及verilog实现

qq_38360574的博客 1676

重签名提示:无法对jar进行签名,java.util.zip.ZipException: invalid entry compressed size

签名的时候报的问题: jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 5067 but got 5217 bytes) 解决的方法: 说明待签的apk是已经签名过的,如果想重新签名的话可以这样做 把要重签名的apk后缀改成zip,打开后删除里面的META

Cmh_csdn的博客 1万+

离合器KP点自学习:从原理到工程实践的全景解析

本文全面解析了离合器KP点自学习的原理与工程实践,详细介绍了KP点的物理本质、控制价值及自学习方法。通过扭矩增量式和转速变化式学习法,结合不同变速箱构型的适配策略,提升离合器控制的精度与效率。文章还探讨了液压系统迟滞补偿和摩擦材料老化应对方案,为工程实践提供可靠保障。

weixin_33717117的博客 287

分离与合体题解(区间DP)

题目: 经过在机房里数日的切磁,LYD从社神牛那里学会了分离与合体,出关前,杜神牛给了他一个测试 杜神牛造了个区域,它们紧邻着排成了一行,编号1-n。在这經个区域里都放着一把OI界 的金钥匙,每一把都有一定的价值,LYD当然想得到它们了。然而杜神牛规定LYD不可以一下子 把它们全部拿走,而是每次只可以拿一把。为了尽快地拿到所有的金钥匙,LYD自然就用上了刚学的分离与合体特技。 开始LYD可以选择从1~n-11~n-11~n-1的任何一个区域(记为K)进入,进入后LYD会在K区域发 生分离,从而分离为两个小L

cqbz_lipengcheng的博客 372

java不能签名_jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size...

使用如下命令签名时jarsigner -verbose -sigalgSHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore WebViewTest.apk mytest遇到如下问题:jarsigner: 无法对 jar 进行签名:java.util.zip.ZipException: invalid entry compress...

weixin_39621669的博客 1054

SAP-ABAP:SAP ABAP 深度解析:BAPI 从入门到精通 —— 原理、实战与自定义开发全指南

SAP ABAP BAPI 深度解析摘要 本文全面介绍了 SAP ABAP 中的 BAPI(业务应用程序编程接口)技术,涵盖以下核心内容: BAPI 定义与特点:BAPI 是 SAP 为业务对象提供的标准化编程接口,具有面向对象、封装业务逻辑、标准化错误处理和版本兼容性等特点。 BAPI 与 RFC 关系:所有 BAPI 都是 RFC,但需额外满足业务对象注册、标准化参数和错误处理等要求。 BAPI 核心作用:包括业务逻辑封装、系统集成、标准化错误处理、版本兼容和审计合规。 实战演示:通过创建销售订单的完整

baidu_35680696的博客 1034

Apk文件重签名失败:java.util.zip.ZipException

今天给一个手里的debug出来的apk文件在命令行用jks签名,常规操作: jarsigner -verbose -keystore app.jks -storepass app123 -keypass pwd123 -signedjar lovelight_signed.apk base.apk release 直接报错提示:· jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expe

GeofferySun的专栏 3557

《UDS协议从入门到精通》系列——图解0x14:清除诊断信息

图解0x14:清除诊断信息,简洁易懂,迅速上手!

车载系统攻城狮 4826

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

重签名提示: java.util.zip.ZipException: invalid entry compressed size

在上架360应用商店的时候需要重新进行签名,按官方提示操作,签名的时候报的问题: jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 26900 but got 27470 bytes) 解决的方法: 待签的apk是已经签过名的,重新签名的话需要 把要重新签名的ap...

Call_me_small_pure的博客 2986

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

apk包签名遇到的一些问题

3、签名 jarsigner -verbose -keystore lmyc.keystore(证书名) -signedjar demo_signed.apk(签名后的apk名) lmyc.apk(要签名的apk名) liminyichongapp(证书别名)1、取证书别名 keytool -list -v -keystore lmyc.keystore -storepass liminyichong1688。解决方法 说明待签的apk是已经签名过的,如果想重新签名的话可以这样做。

weixin_45768801的博客 534

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

批处理命令批量重签名AndroidAPK包 && JAR转APK网址

      对于写好的Android程序,打成apk包后,有时我们想更换下包里的资源,这时就得对这个apk包进行重新签名。      本文就写了个利用批处理自动对apk进行重签名的小程序。       操作前准备:      1.在运行本批处理程序前,请确定已经建立了Java环境设置了Java_home环境变量并且将AndroidSDK/tools路径添加为环境变量。 

Sodino的专栏 7283

android签名问题

有的朋友经常会遇到各种各样的android签名问题: 下面就我遇到的与各位分享一下; 问题一:jarsigner: 无法打开 jar 文件: ChangeBackgroundWidget.apk 我的解决方法是:将要进行签名的APK放到对应的文件下,如我把要签名的ChangeBackgroundWidget.apk放到JDK的bin文件里。 问题二:jarsigner: 找不到 a

8891 452

在dos下给一个apk签名

以前都一直用eclips直接打包的,

老男孩的网络笔记本 1113

Android 7.0多渠道打包Signature Scheme v2签名失效

更新: 文末新添了脚本打包方式,简单快捷,想直接使用的直接跳到脚本打包部分。 最近在发布应用上传市场的时候发现在 腾讯应用宝 上传失败,说是什么腾讯管家检测到app有病毒,看见这个当时我就不乐意了,索性我就安装了个管家然后预料之中没有出现所谓的病毒;这里我就不想吐槽了。最后发现是在android 7.0新出的签名机制上引发的问题; APK Signature Scheme v2介绍 Andr...

mackkill的专栏 1万+

jarsigner签名文件安装失败,java1.8给unsigned.apk签名完整命令

jarsigner -verbose -keystore .../签名文件.jks -signedjar .../签名后文件输入位置.apk -digestalg SHA1 -sigalg MD5withRSA .../待签名文件.apk alias(别名) -sigFile CERT

qq7915的博客 500

jar包文件签名不合法

由于公司elasticsearch升级,升级到6.2.0,需要对原来的2.x的代码进行api的升级。遇到一些问题,记录一下:1、首先是elasticsearch jar包打包的问题elasticsearch_6.2.0 jar包使用的jackson版本是2.8.10,和项目里的版本有冲突,单独引用elasticsearch的包启动项目时一直报错。使用maven-shade-plugin插件可以解决...

渣渣想逆袭 4404

android apk使用系统签名之windows批处理

链接:http://pan.baidu.com/s/1i3E9a6L 密码:mpei 

miyuehu的专栏 2776

Android平台签名证书.keystore生成指南

Android平台签名证书.keystore生成指南android证书安装JRE环境(如已有可跳过)生成签名证书查看证书信息 android证书 1.Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。 2.Android证书的生成是自助和免费的,不需要审批或付费。 3.可以使用JRE环境中的keytool命令生成。以下是windows平台...

sinat_41830278的博客 695

ionic3 解决img标签无法在手机上正常显示问题

ionic3 解决img标签无法在手机上正常显示问题本人使用img标签为页面引入一个图片,在浏览器能够正常显示,但是打包安装到手机端时确无论如何都显示不了。 一般这种情况有很多可能性,比如说: 引用路径不对 图片没有加载 图片损坏 …… 下面是我程序中的代码:乍一看并没有什么毛病,在src/pages/home目录下的home.html文件中若想引用src/assets/imgs下的logo.p

仲夏夜之恋的专栏 7907
上一篇: 通过Google内置计步器和加速度传感器制作android计步程序(附源码)
下一篇: ionic3 解决Error: No provider for Http!
仲夏夜之恋
博客等级 码龄12年 27粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值