android打包签名,android app签名包原理
如何利用Eclipse工具打包签名AndroidApk文件
用eclipse软件打包app安卓客户端免费下载
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都网站建设、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的金台网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
链接:
提取码:7a4n
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
Android打包流程
官方详细:
ps:打包前做好config.xml配置如包名
一、添加android平台
添加之后,在项目目录的platforms下会生成一个android文件夹。
二、cordova编译应用
使用build命令编译应用的发布版本,这个过程需要你的android sdk和环境变量、java jdk和环境变量、android的gradle配置没有错误。
编译成功之后,在项目路径platforms/android/build/outputs/apk/android-release-unsigned.apk未签名文件,这个时候的apk还不能被安装到手机上。
三、生成签名文件
输入的密码要记住,其他姓名地区等信息随便填吧,最好还是记住,成功之后在主目录下就生成了 jhy-release-key.keystore 文件,命令中jhy-release-key.keystore是生成文件的名字, alias_jhy 是别名,随便起但是要记住,一会签名要用到,其他信息如加密、有效日期等就不说了,无需改动。
生成后会提示:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore jhy-release-key.jks -destkeystore jhy-release-key.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
执行命令:
执行结果: Warning: 已将 "jhy-release-key.jks" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "jhy-release-key.jks.old" 进行了备份。
四、签名应用文件
把在第二步生成的android-release-unsigned.apk拷贝到与生成的jhy-release-key.jks同一目录下,也就是项目的主目录下,执行命令:
输入签名文件的密码,成功之后主目录下的android-release-unsigned.apk就被签名成功了,会比原来未被签名的apk文件大一点,能够安装到手机或android虚拟机上了。
签名完成后会提示没有时间戳,忽略即可
检测是否签名成功:
也可用以下命令签名并生成新apk文件
Android中APK签名工具之jarsigner和apksigner详解
转自
一.工具介绍
jarsigner是JDK提供的针对jar包签名的通用工具,
位于JDK/bin/jarsigner.exe
apksigner是Google官方提供的针对Android apk签名及验证的专用工具,
位于Android SDK/build-tools/SDK版本/apksigner.bat
不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(仅限V1签名),
以上两个工具都可以对Android apk包进行签名.
1.V1和V2签名的区别
在Android Studio中点击菜单 Build-Generate signed apk... 打包签名有两种签名选项 V1(Jar Signature) V2(Full APK Signature),
从Android 7.0开始, 谷歌增加新签名方案 V2 Scheme (APK Signature);
但Android 7.0以下版本, 只能用旧签名方案 V1 scheme (JAR signing)
V1签名:
V2签名:
V2签名优点很明显:
注意: apksigner工具默认同时使用V1和V2签名,以兼容Android 7.0以下版本
2.zipalign和V2签名
位于Android SDK/build-tools/SDK版本/zipalign.exe
zipalign 是对zip包对齐的工具,使APK包内未压缩的数据有序排列对齐,从而减少APP运行时内存消耗
zipalign -v 4 in.apk out.apk //4字节对齐优化
zipalign -c -v 4 in.apk //检查APK是否对齐
zipalign可以在V1签名后执行
但zipalign不能在V2签名后执行,只能在V2签名之前执行!!!
二.签名步骤
1.生成密钥对(已有密钥库,可忽略)
Android Studio在Debug时,对App签名都会使用一个默认的密钥库:
1.生成密钥对
进入JDK/bin, 输入命令
参数:
提示: 可重复使用此条命令,在同一密钥库中创建多条密钥对
例如: 在debug.keystore中新增一对密钥,别名是release
keytool -genkeypair -keystore debug.keystore -alias release -validity 30000
2.查看密钥库
进入JDK/bin, 输入命令
keytool -list -v -keystore 密钥库名
参数:
例如:
keytool -list -v -keystore debug.keystore
现在debug.keystore密钥库中有两对密钥, 别名分别是androiddebugkey release
2.签名
1.方法一(jarsigner,只支持V1签名)
进入JDK/bin, 输入命令
从JDK7开始, jarsigner默认算法是SHA256, 但Android 4.2以下不支持该算法,
所以需要修改算法, 添加参数 -digestalg SHA1 -sigalg SHA1withRSA
参数:
例如:
用JDK7及以上jarsigner签名,不支持Android 4.2 以下
jarsigner -keystore debug.keystore MyApp.apk androiddebugkey
用JDK7及以上jarsigner签名,兼容Android 4.2 以下
jarsigner -keystore debug.keystore -digestalg SHA1 -sigalg SHA1withRSA MyApp.apk androiddebugkey
2.方法二(apksigner,默认同时使用V1和V2签名)
进入Android SDK/build-tools/SDK版本, 输入命令
若密钥库中有多个密钥对,则必须指定密钥别名
禁用V2签名
apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk
参数:
例如:
在debug.keystore密钥库只有一个密钥对
apksigner sign --ks debug.keystore MyApp.apk
在debug.keystore密钥库中有多个密钥对,所以必须指定密钥别名
apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk
3.签名验证
1.方法一(keytool,只支持V1签名校验)
进入JDK/bin, 输入命令
keytool -printcert -jarfile MyApp.apk (显示签名证书信息)
参数:
2.方法二(apksigner,支持V1和V2签名校验)
进入Android SDK/build-tools/SDK版本, 输入命令
apksigner verify -v --print-certs xxx.apk
参数:
例如:
apksigner verify -v MyApp.apk
androidstudio项目签名打包生成apk出错整理
本人由于一些误操作接触到打包文件的问题,故作此文避免再次踩坑。
1.入口:build-generate signed bundle/APK,打开后如下图1.1:
2.选中apk打包,进入next:
3.选择打包类型:
4.箭头所指即为生成的混淆+签名后的打包apk文件。(*签名文件不可以随便更改,如果有申请第三方的功能,都需要这个签名文件去检验的,比如说集成了微信支付,我们换签名文件的话,微信那边就会检验不通过)
5.本文重点并非上述步骤,而是我自己重新生成了一个密钥后,打包文件变成了.aab后缀文件。于是我想研究下它的打包过程和原理:
5.1在我们的build.gradle中可以更新打包文件版本号名称(自己配一下):
5.2签名文件会在此处进行对应生成信息:
5.3当然,你的项目文件也会对应生成相应的签名文件,例如我此处的文件为yoocarjks.jks:
5.4自己配一下打包生成文件的命名:
以上over
6.*问题点:
6.1.签名文件生成的乱码是些啥?
6.2.由于我当时把项目扔垃圾桶了,还有些文件并没有搞清楚是干嘛的,如下图:
buildoutputcleanuo.lock/executionhistory.bin/executionhistory.lock/filehashes.bin/filehashes.lock/outputfiles.bin/xxx.app.iml这些文件分别干嘛的,从包名看像是打包生成的文件。
作此文激励下自己空了去学习查阅下,若有知道的小伙伴欢迎留言分享~此文会继续追更~
7.1关于xxx.app.iml看到一篇不错的出错解决方案:
设计原理如下:
这个文件,后续遇到问题我再深入了解下
如何产生android 打包签名文件
默认Android Studio签名生成apk文件或不签名的apk文件点击“Build——Build APK”生成默认签名和默认不签名的两种文件 点击“Build——General Signed apk”指定自定义签名文件后,生成发布版本的签名文件,如果没有签名文件,先创建一个
android apk 打包只能签名v1或v2
我们平常打包的时候,都是自动选择v1、v2同时签名如下图:
但是有些自己不熟的项目你即使选择了这两个选项,但是你打出来的apk还是会出现v1没签上或者v2没签上的情况;
这里我就不过多表述v1 、v2 、v3,签名的详情解释啦!有心的看客自己baidu或google或看api吧(一搜一大把)!
这里我遇到的情况就是在当前项目中的最低SDK版本设置成了24(minSdkVersion 24):
然后就导致了上述问题!
所以你只需要将最低sdk版本设置低于24版本(如23,我一般做项目都设置成17),那你打apk签名的时候就不会只能签名一个(v1、v2)啦!
当前标题:android打包签名,android app签名包原理
分享URL:http://scyanting.com/article/dsisesp.html