Macho000

前準備

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"/>

~~省略~~

参考サイト

AndroidManifest.xml、AppDelegate.swiftからenvにアクセス

#Flutter