android 从keystore.propertiessettings.gradle读取www.example.com

watbbzwu  于 2023-06-27  发布在  Android
关注(0)|答案(1)|浏览(171)
  • TL;DR:我想在keystore.properties中存储一个密钥,并在settings.gradle中使用它。*

我一直遵循official advice使用keystore.properties文件作为我的密钥,并从build.gradle阅读它,如下所示:

  1. // Create a variable called keystorePropertiesFile, and initialize it to your
  2. // keystore.properties file, in the rootProject folder.
  3. def keystorePropertiesFile = rootProject.file("keystore.properties")
  4. // Initialize a new Properties() object called keystoreProperties.
  5. def keystoreProperties = new Properties()
  6. // Load your keystore.properties file into the keystoreProperties object.
  7. keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

现在的问题是,在我的repositories { maven { ... } }块中有一个我需要的密钥,它恰好在settings.gradle中(似乎这是新的方法)。
但是我不能从settings.gradle运行def keystorePropertiesFile = rootProject.file("keystore.properties")(我猜rootProject在那一点上没有设置)。当我这样做时,我得到以下错误:
无方法签名:org.gradle.initialization.DefaultProjectDescriptor.file()适用于参数类型:(字符串)值:[keystore.properties]
有没有办法从settings.gradle读取属性文件?我可以在gradle.properties中写入密钥,但这并不方便,因为该文件是版本化的。在Gradle调用中使用-P也不方便使用Android-Studio。
我错过了什么?

ki0zmccv

ki0zmccv1#

它的工作原理如下:

  1. def keystorePropertiesFile
  2. for (file in getRootProject().getProjectDir().listFiles()) {
  3. if (file.name == "keystore.properties") {
  4. keystorePropertiesFile = file
  5. }
  6. }
  7. def keystoreProperties = new Properties()
  8. keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

我希望我能让它更干净。

相关问题