android - 在 Flutter 应用程序的源代码管理中隐藏 Google Maps API 密钥
问题描述
要启用 Google Maps SDK,您必须使用 API 密钥更新: android/app/src/main/AndroidManifest.xml用于 android, ios/Runner/AppDelegate.m用于 ios。
问题:
我不想将我的 API 密钥签入源代码管理。
有没有办法用.env
文件和隐藏这个键.gitignore
?
这里的最佳做法是什么?
解决方案
您可以将 api 密钥设置为环境变量,只能在本地计算机上构建期间读取。创建一个环境变量 MAPS_API_KEY="your-key-here",然后将这些行添加到 [your-project]/android/app/build.gradle
defaultConfig {
manifestPlaceholders = [mapsApiKey: "$System.env.MAPS_API_KEY"]
}
然后您可以使用 mapsApiKeys 在 AndroidManifest.xml 中传递您的 api 密钥
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="${mapsApiKey}"/>
对于 ios,将这些添加到 AppDelegate.m
NSString* mapsApiKey = [[NSProcessInfo processInfo] environment[@"MAPS_API_KEY"];
[GMSServices provideAPIKey:mapsApiKey];
推荐阅读
- git - 是否可以触发另一个提交并通过 git hook 推送?
- openedx - CMS sign in redirect to lms login page in open edx
- vuejs2 - 如何使用 xiaokaike/vue-color 组件修复 VueColor 未定义错误
- kubernetes - 有没有在没有 Helm 的情况下在 Kubernetes 集群中部署 Istio 的解决方案
- google-bigquery - BigQuery Slot Usage and Billing across Projects
- javascript - 如何解决 Asyncstorage 多集不存储任何数据?
- makefile - makefile doesn't build targets
- excel - Excel - Repeat cell value in intervals
- vips - 使用 Shrine 生成 PDF 预览
- google-apps-script - If statement trigger functions