我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

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签名包原理
当前地址:http://shouzuofang.com/article/dsisesp.html

其他资讯