前準備
flutter_configを下記のコマンドを使ってインスール
flutter pub add flutter_config
Flutterアプリケーションのルート位置に新しく.envを作成
API_KEY=test_value // example
main.dartですべての環境変数を読み込む
下記のコードを書くことによりアプリのどの場所でも環境変数を呼び出せる
import 'package:flutter_config/flutter_config.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized(); // Required by FlutterConfig
await FlutterConfig.loadEnvVariables();
runApp(MyApp());
}
アプリ内での呼び出し
Flutterアプリ内
import 'package:flutter_config/flutter_config.dart';
FlutterConfig.get('API_KEY') // returns 'test_value'
iOS側での呼び出し
swiftファイルでの呼び出し
import UIKit
import Flutter
import flutter_config //import忘れずに
import GoogleMaps
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GMSServices.provideAPIKey(FlutterConfigPlugin.env(for: "API_KEY")) //API_KEY 呼び出し
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
Android側での呼び出し
pluginの適用
android/app/build.gradle で一番最後の行を追加する
~~省略~~
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply from: project(':flutter_config').projectDir.getPath() + "/dotenv.gradle" // 追加ライン
~~省略~~
呼び出し
xmlファイルでの呼び出し
~~省略~~
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="@string/API_KEY"/> // 追加ライン
<meta-data android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"/>
~~省略~~