Android app签名注意事项
2015-12-25 17:04
411 查看
有几点问题需要提出来解答
1 为什么需要签名机制
答:个人觉得有三点 1. 防止别人串改自己的程序 2. 签名一致时才可升级 3. apk只有签名后才可以安装在Android系统上,系统要求
2 怎么签名
答:个人觉得有两种方法:1. 使用工具keytool和jarsigner 2. 使用AS或eclipse集成的方法
1 使用工具keytool 和jarsigner签名app
首先,生成.keystore文件,命令:
keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
利用.keystore文件对apk签名
jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk app-debug.apk demo.keystore
2. 使用IDE,仅对as情况
可以在Build/Generate signed apk选项签名操作(灵活性很大)
如果不这么做,as默认情况下是生成debug签名,怎么看是debug签名呢,对已生成的apk用如下命令
jarsigner -verify -certs -verbose *.apk
如果是下面的信息, CN=Android Debug等,这是debug签名,debug签名是普遍的签名,是不会允许提交到google play store上的
sm 315 Fri Dec 25 15:39:14 CST 2015 org/joda/time/tz/data/America/Fortaleza
X.509, CN=Android Debug, O=Android, C=US
[证书的有效期为15-9-29 上午11:40至45-9-21 上午11:40]
[CertPath 未验证: Path does not chain with any of the trust anchors]
除非是realease签名,如果要生成release版本的apk,需要对build.gradle进行配置
当然你可以对debug签名使用你自己定义的类型,只需要在buildTypes 里面添加
debug{
signingConfig signingConfigs.config
}
1 为什么需要签名机制
答:个人觉得有三点 1. 防止别人串改自己的程序 2. 签名一致时才可升级 3. apk只有签名后才可以安装在Android系统上,系统要求
2 怎么签名
答:个人觉得有两种方法:1. 使用工具keytool和jarsigner 2. 使用AS或eclipse集成的方法
1 使用工具keytool 和jarsigner签名app
首先,生成.keystore文件,命令:
keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
利用.keystore文件对apk签名
jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk app-debug.apk demo.keystore
2. 使用IDE,仅对as情况
可以在Build/Generate signed apk选项签名操作(灵活性很大)
如果不这么做,as默认情况下是生成debug签名,怎么看是debug签名呢,对已生成的apk用如下命令
jarsigner -verify -certs -verbose *.apk
如果是下面的信息, CN=Android Debug等,这是debug签名,debug签名是普遍的签名,是不会允许提交到google play store上的
sm 315 Fri Dec 25 15:39:14 CST 2015 org/joda/time/tz/data/America/Fortaleza
X.509, CN=Android Debug, O=Android, C=US
[证书的有效期为15-9-29 上午11:40至45-9-21 上午11:40]
[CertPath 未验证: Path does not chain with any of the trust anchors]
除非是realease签名,如果要生成release版本的apk,需要对build.gradle进行配置
signingConfigs { config { keyAlias '' keyPassword '' storeFile file('') storePassword '' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.config } }
当然你可以对debug签名使用你自己定义的类型,只需要在buildTypes 里面添加
debug{
signingConfig signingConfigs.config
}
相关文章推荐
- android 图片 高斯模糊 Blur Android Studio JNI NDK 生成 so 问题汇总
- Android开发之关于listview中getView()调用两遍的问题
- IOS平台音频处理API介绍
- iOS 真机调试双击.cer证书
- iOS可变数组添加元素 以及可变数组操作
- Android Studio系列教程(三)
- android Settings开发修改定制
- iOS项目重构周记(一)
- 曝光!!!扫码生活 App 其实是一个垃圾应用,毫无用处,下面我就给大家说说理由吧!
- Android内存泄露分析(MemoryAnalyzer工具)
- iOS项目重构周记(二)
- Ant多渠道打包
- Swift - 使用NSNotificationCenter发送通知,接收通知
- AndroidStudio快捷键
- android cardview
- iOS的三种多线程技术
- iOS开发笔记--连续跳转上层页面
- ***交互干货必收 | App界面交互设计规范
- 《APP开发》APP规范实例-详细的UI设计方法
- iOS从xib界面跳转到storyboard 中的界面和从storyboard中的界面跳转到另一个storyboard中的界面