相关疑难解决方法(0)

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

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

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

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

security android api-key flutter

9
推荐指数
1
解决办法
6984
查看次数

在 Flutter 应用程序的源代码管理中隐藏 Google Maps API 密钥

要启用 Google Maps SDK,您必须使用 API 密钥更新: android/app/src/main/AndroidManifest.xml(用于 android)和 ios/Runner/AppDelegate.m(用于 ios)。

问题:

我不想将我的 API 密钥签入源代码管理。

有没有办法用.env文件隐藏这个键.gitignore

这里的最佳实践是什么?

git android google-maps ios flutter

7
推荐指数
2
解决办法
3045
查看次数

在 Flutter 中限制 Google Directions API 密钥

我一直在使用 Flutter 开发移动应用程序,并希望尽快在 Play 商店上发布它。它使用 Google Directions API,现在我想将 API 密钥限制为该特定应用程序。

我能够对应用程序进行签名,并且我已使用应用程序的包名称和密钥的 SH1A 指纹将 API 密钥限制为 Android 应用程序,两者都经过了双重检查。

不管怎样,无论是在调试模式(我认为这是故意的)还是在发布模式下,请求都会被拒绝。我通过 dart HTTP 包访问 API。

我的理论是,这样 Directions API 就无法识别应用程序的包名称或指纹。那是对的吗?我可以使用 google_maps_webview 包或其他东西来解决这个问题吗?

提前致谢,

保罗

android google-maps google-directions-api flutter

3
推荐指数
1
解决办法
3262
查看次数