首页 > 解决方案 > 在 Flutter 应用程序的源代码管理中隐藏 Google Maps API 密钥

问题描述

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

问题:

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

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

这里的最佳做法是什么?

标签: androidiosgitgoogle-mapsflutter

解决方案


您可以将 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];

推荐阅读