Android签名是为了保证应用发布者是本人,大致有几种:以前Eclipse用keyStore进行签名;现在Android Studio开发app采用JKS签名;Android系统签名采用的是pem/pk8.
每个Android App都会有自己的签名,如果我们没有指定签名,编译时会默认用SDK目录下的debug签名文件。
常见的签名jks在Android studio中有两种方式给app签名,一种是build时generate signed apk;一种是在build文件中配置签名信息。使用方法如下:
或者使用方法二:(明文展示,不安全)
android {
signingConfigs {
release {
storeFile file("WuXiaolong.jks")
storePassword 'android'
keyAlias 'android'
keyPassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
}
}
方法三:Terminal输入命名行签名(明文展示,不安全)
需要提前在配置文件中配置
android {
signingConfigs {
release {
storeFile file("WuXiaolong.jks")
storePassword 'android'
keyAlias 'android'
keyPassword 'android'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}
然后在Terminal输入命令
gradlew assembleRelease
打包成功的路径是在:\app\build\outputs\apk\app-release.apk
博主推荐的方法:
通过读取文件,一般地,以.properties格式后缀的文件,在上传github时会进行自动过滤。这类文件也相对安全,不容易会反编译。
新建keystore.properties文件,根据项目情况写入配置信息(开发者只需要更改keystore.properties里面的信息)
storeFile=keyStore.jks
storePassword=123456
keyAlias=encrypt
keyPassword=123456
build.gradle中配置
signingConfigs {
// 从keystore.properties文件中读取信息
def keystorePropertiesFile = rootProject.file("app/keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
debug {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
}
release {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
}
}
//然后在这里引用上面配置
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}