首页 > 解决方案 > 使用 Gradle 隐藏 API 密钥

问题描述

是否可以在不使用 android 的情况下使用 buildTypes 和 buildConfigField 在 Gradle 中隐藏我的 API 密钥?我在网上找到的每个示例都需要 android 插件

标签: javagradle

解决方案


只需添加一个keystore.properties文件,然后将其加载到build.gradle; 例如:

def keystore = new Properties()
keystore.load(new FileInputStream(rootProject.file('keystore.properties')))
project.ext.set('debugKeystorePass', keystore['debugKeystorePass'])
...

如果没有插件,您将无法将这些值与 Android 清单合并器一起使用。这个插件除了将 JSON 转换为 XML 之外什么都不做,并且在复制生成的资源 XML 文件时保存以删除,因为它们是 Google Play 和 Firebase 所必需的。


使用 Cloud Build 构建时,可以使用 Cloud KMS;请参阅kms_encrypt.sh索引显示如何解密。与此类似,我可以签入加密文件,而不必乱用密钥。


推荐阅读