我想开源我正在开发的应用程序,但仍要亲自使用。我将如何外部化firebase密钥和google maps api密钥,以使它们在公共存储库中不可用?
答案 0 :(得分:1)
您可以在lib/
中有一个目录,用于存放可以进入单独存储库的私人代码。对于不是代码的私人数据,请使用顶层目录。
让我们说私人目录被称为internal
。这是一个示例树。
project/
lib/
internal/ <-- separate repo.
view/
model/
...
test/
android/
ios/
...
确保在主项目中将internal/
添加到.gitignore
。然后在私有目录中创建另一个仓库。如果私有数据不经常更改,并且您不介意分别提交更改,这就足够了。有git管理的方法可以嵌套存储库,但是对于这种imo而言,这太困难了。
现在,只需像往常一样在internal/
文件夹中创建一个类,并将其从另一个文件导入。
internal / keys.dart
final googleMapsKey = 'aj349aj4fp0_394jfam4gni-aoig4ja4goeifnwfa093';
// Firebase key, etc.
view / map.dart
import '../internal/keys.dart';
var googleMap = new GoogleMap(apiKey: googleMapsKey);
您明白了。