打包签名与版本号
来源:互联网 发布:阶级固化 知乎 编辑:程序博客网 时间:2024/05/16 07:51
1.签名的意义
为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。
2.签名的步骤
a.创建key
b.使用步骤a中产生的key对apk签名
3.具体操作
方法一: 命令行下对apk签名(原理)
创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入
D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore/*说明:-genkey 产生密钥 -alias demo.keystore 别名 demo.keystore -keyalg RSA 使用RSA算法对签名加密 -validity 40000 有效期限4000天 -keystore demo.keystore */D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore 密钥库位置 -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。
versionCode与versionName的区别
android:versionCode——整数值,代表应用程序代码的相对版本,也就是版本更新过多少次。
整数值有利于其它程序比较,检查是升级还是降级。你可以把这个值设定为任何想设的值,但是,你必须保证后续更新版的值要比这个大。系统不会强制要求这一行为,但是随着版本更新值也增加是正常的行为。
一般来说,你发布的第一版程序的versionCode设定为1,然后每次发布都会相应增加,不管发布的内容是较大还是较小的。这意味着android:versionCode不像应用程序的发布版本(看下面的android:versionName)那样显示给用户。应用程序和发布的服务不应该显示这个版本值给用户。
android:versionName——字符串值,代表应用程序的版本信息,需要显示给用户。与android:versionCode一样,系统不会为了任何内部的目的使用这个值,除了显示给用户外。发布的服务也需要提取这个值来显示给用户。
- 打包签名与版本号
- 打包签名与版本号修改
- Android项目签名与打包
- robotium测试工程打包与签名
- android打包成APK与签名
- 【Android基础】App签名与打包
- Android项目打包与签名对比
- Android 生成签名apk与多渠道打包
- 6.2 APP的签名与打包
- 打包签名
- Android APK破解、反编译、打包签名基本思路与方法
- android 生成签名文件与APK打包(学习笔记)
- apk的反编译与重新打包并签名
- Gradle For Android(二) 多渠道打包与签名配置
- 网狐荣耀版安卓端的签名与打包
- android签名打包、签名混淆、多渠道打包
- 查看已经打包好的APK文件的签名与给打包好的APK文件签名
- android签名打包
- UIWebView的基本用法(2)
- 最近知识点记录
- 【NOI1998】免费馅饼,膜一膜XYX大爷
- ubuntu14.04下的chromium安装flash插件
- Spring MVC详解(五) 处理器拦截器详解
- 打包签名与版本号
- Redis及phpredis安装配置
- Android应用程序生命周期 - Lifecycle of an Android Application
- 用JAVA接口声明一个变量是什么意思?
- Spring MVC详解(六)注解式控制器详解(1)
- asp.net中的<%%>形式的详细用法总结
- android ImageView实现变暗效果
- 【HDU4614】【线段树】【二分】
- String是值类型还是引用类型(C#)