您的位置:首页 > 移动开发

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进行配置

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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: