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
}
}