如何在 AndroidManifest 中隐藏 API 密钥.xml



我刚刚启动了 Flutter 的 Google 地图插件,它要求我将生成的 API 密钥插入android/app/src/main/AndroidManifest.xml中的AndroidManifest.xml文件中。片刻之后,我将其提交到我的存储库中,并立即收到Google和Git的警告,要求更改生成新密钥等(不知道您不应该这样做,所以我现在很清楚(。

之后,我开始寻找隐藏 API 密钥的方法。一种解决方案是使用 Flutter 安全存储插件,但这只会在.dart文件中有所帮助(我认为(。另一种是创建一个单独的文件并将其添加到 .gitignore 但是当我构建 APK 时,该文件是否也会捆绑?

理想情况下,我想发布它,但我不希望密钥易于访问,那么如何在不使用明文的情况下将 API 密钥加载到AndroidManifest.xml文件中?我想避免使用后端,所以我想我可以手动散列它,然后在运行时取消散列,但我仍然不知道如何动态更改AndroidManifest.xml文件。

您无法混淆存储在清单中的密钥,因为存储的(静态(值将由 Google 地图 API 本身直接使用。要保护您的密钥,请考虑在 GCP 控制台中添加限制,以便只有经过授权的客户端才能使用您的密钥。

有关更多详细信息,请参阅此链接:https://developers.google.com/maps/documentation/android-sdk/get-api-key#restrict_key

以下是有关保护 API 密钥的最佳实践的更多信息: https://developers.google.com/maps/api-key-best-practices#api_key_table

我知道已经晚了,但这可以帮助某人,

只需输入 :

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${API_KEY}" /> 

观看YouTube视频以获取更多解释:

https://www.youtube.com/watch?v=X8lYNW_Or2o

最好的问候

看这里:使用 local.properties 使用 Flutter 从您的 android 清单文件中隐藏您的 api 密钥。也为 React Native 工作。

相关内容

  • 没有找到相关文章

最新更新