首页 > 解决方案 > 如何将私有签名信息转换为 Kotlin DSL?

问题描述

我正在迁移到 Kotlin DSL。我已经按照大多数流行的博客进行了最初的设置。现在是重构build.gradle文件的时候了。我有如下所示的私人签名信息逻辑。

if (project.hasProperty('propertyfile') && project.hasProperty('key.store')) {

  def keystorePropertiesFile = rootProject.file(project.getProperty('propertyfile'))
  def keystoreProperties = new Properties()
  keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

  signingConfigs {
    release {
        keyAlias keystoreProperties['key.alias']
        keyPassword keystoreProperties['key.alias.password']
        storeFile file(project.getProperty('key.store'))
        storePassword keystoreProperties['key.store.password']
    }
  }
}

我不确定如何将此部分转换为与 Kotlin DSL 等效的部分。浏览了有关此主题的相关帖子和博客,但找不到任何相关内容。谁能帮我分享一些关于如何做到这一点的想法?

标签: androidandroid-gradle-pluginbuild.gradlegradle-kotlin-dsl

解决方案


请尝试如下,

if (project.hasProperty("propertyfile") && project.hasProperty("key.store")) {
    val keystorePropertiesFile = rootProject.file(project.properties["propertyfile"])
    val keystoreProperties = Properties()
    keystoreProperties.load(FileInputStream(keystorePropertiesFile))

    signingConfigs {
        create("release") {
            keyAlias = keystoreProperties["key.alias"] as String
            keyPassword = keystoreProperties["key.alias.password"] as String
            storeFile = file(project.properties["key.store"])
            storePassword = keystoreProperties["key.store.passord"] as String
        }
    }
}

推荐阅读