我正在尝试使用gradle构建文件对我的应用程序进行签名。当我使用普通的signingConfigs时,它可以工作(signingConfigs.release)!但是,如果我试图从属性文件中读取属性,它将无法正常工作。 (signingConfigs.config)
Properties props = new Properties();
props.load(new FileInputStream(file(rootProject.file("signing.properties"))))
android {
signingConfigs {
config {
storeFile file(props["storeFile"])
storePassword props["storePassword"]
keyAlias props["keyAlias"]
keyPassword props["KeyPassword"]
}
release {
storeFile file("..\\xyz.jks")
storePassword "****"
keyAlias "****"
keyPassword "****"
}
}
.
.
.
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-SNAPSHOT'
}
}
属性文件:
storeFile=xyz.jks
storePassword=xyz
keyAlias=xyz
keyPassword=xyz
当我运行该项目时,android studios会显示一个对话框,其中显示:
可以正确读取属性文件,因为我可以从控制台中记录该文件中的某些属性。
我的一些系统详细信息:
Android Studio 0.8.6
Windows 8.1 x64
摇动1.12
希望任何人都能帮助我。如果您想了解更多详细信息,请询问我。
最佳答案
这是我的工作,对我有用:
signingConfigs {
release {
def Properties localProps = new Properties()
localProps.load(new FileInputStream(file('../local.properties')))
def Properties keyProps = new Properties()
assert localProps['keystore.props.file'];
keyProps.load(new FileInputStream(file(localProps['keystore.props.file'])))
storeFile file(keyProps["store"])
keyAlias keyProps["alias"]
storePassword keyProps["storePass"]
keyPassword keyProps["pass"]
}
}
我的local.properties文件包含“keystore.properties”文件的路径。包含有关密钥库的信息:
store=***
alias=***
pass=***
storePass=***
也许两个Propreties文件的加载是多余的,但是对我来说确实有用。