java - 使用 Gradle 隐藏 API 密钥
问题描述
是否可以在不使用 android 的情况下使用 buildTypes 和 buildConfigField 在 Gradle 中隐藏我的 API 密钥?我在网上找到的每个示例都需要 android 插件
解决方案
只需添加一个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和索引显示如何解密。与此类似,我可以签入加密文件,而不必乱用密钥。
推荐阅读
- python - 在 gensim 中创建一个新的向量模型
- ios - 使用 Chameleon 的结果设置 UIView.backgroundColor 时出现意外 nil
- vue.js - 如何将ui组件(物化步进器)添加到vue项目中?
- javascript - 如何只实现一次 firebase 并在其他脚本中使用它,而不是在我需要在 javscript 中的每个脚本中进行初始化?
- java - 使用 TableColumnModelListener 时如何知道哪些列已调整大小
- amazon-web-services - 如何从 Sagemaker 读取 AWS S3 图像进行处理
- react-native - 当我不使用异步存储时收到“已提取异步存储”警告
- excel - 当我更改引用的单元格时,自动记录整行单元格(引用其他单元格)
- slick - 在 Slick 中更新时隐式更新某些字段?
- python - 使用 matplotlib 在网格上绘制数据框的散点图