我已按照officials所述的步骤对我的Android应用程序进行数字签名。对于在发布模式下签名,他们说要使用.keystore
文件及其{{3}的凭据我正在使用android studio,因此我得到了.jks
文件。那么我需要根据this保存.jks
文件来构建我签名的APK?请对此进行简单的阐述。并说如果做错了什么?
感谢。
答案 0 :(得分:6)
您可以将.jks
文件放在任何位置
这意味着您可以将文件放在项目中,也可以将文件放在外部文件夹中(只需查看下面的路径)。
这取决于您的政策。
只需使用gradle配置apk的签名。
android {
signingConfigs {
release
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
简单方法:只需在build.gradle文件中定义凭据。
signingConfigs {
release {
//Pay attention to the path. You can use a relative path or an absolute path
storeFile file("../your_key_store_file.jks")
storePassword 'some_password'
keyAlias 'alias_name'
keyPassword 'key_password'
}
}
使用.properties文件将凭据存储在脚本之外(例如,如果您不想在git仓库中推送凭证)。
示例:signing.properties
STORE_FILE=/path/to/your.keystore
STORE_PASSWORD=yourkeystorepass
KEY_ALIAS=projectkeyalias
KEY_PASSWORD=keyaliaspassword
然后在build.gradle文件中获取这些值:
signingConfigs {
release
}
然后定义:
def Properties props = new Properties()
def propFile = new File('signing.properties')
if (propFile.canRead()){
props.load(new FileInputStream(propFile))
if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
println 'signing.properties found but some entries are missing'
android.buildTypes.release.signingConfig = null
}
}else {
println 'signing.properties not found'
android.buildTypes.release.signingConfig = null
}