2
2

More than 1 year has passed since last update.

Flutterでの開発でAPIKeyを隠してGithubにあげる方法

Last updated at Posted at 2021-09-23

チーム開発をするときなどに、自分のコードをGithubなどにあげたい!→でもAPIKeyを隠さないと...というときがあると思います。そうした時に、これが最も手っ取り早くAPIKeyを隠す方法だと思ったので共有します。
※私が作っていたアプリが地図系なので、APIKeyの名前もそんな感じになってますが、お構いなく好きに名前つけてもらって大丈夫です()

Android

基本的な設定

https://www.entwicklernotizen.de/blog/how-to-handle-secret-api-keys-in-flutter-for-android-and-i-os/
android/app/src/main/AndroidManifest.xmlへのAPIKeyの書き込みについてはこれを参考にしてください。ここから先のコードは、your_api_keyという文字列を自分のAPIKeyに書き換えて使用してください。

android/local.properties
...
MAPS_API_KEY=your_api_key//これを追加
AndroidManifest.xml
<manifest...
  <application...
    <meta-data...
      android:name="com.google.android.geo.API_KEY"
      android:value="${MAPS_API_KEY}"
    />
    ...
  />
  ...
/>

lib/main.dartへの書き出し

libディレクトリ配下のファイルへの書き出しについては、lib配下にファイルを作ってそれをimportすることによって書き出しを行います。ファイル名はapikey.dartとします。

apikey.dart
String api_key = "your_api_key";
main.dart
...
import 'apikey.dart' //apikey.dartファイルをimport
//これで、main.dart内でapi_keyが呼び出し可能になる
String APIKey = api_key
...

main.dart以外でも、lib配下のファイルであればやり方は同じです。その後に、プロジェクトファイル直下の.gitignoreファイルにapikey.dartを追加してください。

.gitignore
apikey.dart
...

iOS

同様に、ios/Runnerディレクトリ配下にAPIKeyを格納するファイルを作ります。ここではファイル名はapikey.hとします。同じくios/Runner配下にあるAppDelegate.mへ書き出します。

apikey.h
NSString *maps_api_key = @"your_api_key";
AppDelegate.m
...
import "apikey.h"//これを追加

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [GMSServices provideAPIKey:maps_api_key];//ここにapikey.hで定義したmaps_api_keyを追加
  [GeneratedPluginRegistrant registerWithRegistry:self];
  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

@end

そして、同様にプロジェクト直下の.gitignoreapikey.hを追加します。

.gitignore
apikey.dart
apikey.h
...

Swiftを使っている場合どうなるのかはちょっと謎です...が、他サイトに結構乗っていたので今回は割愛します。

最後に

Qiitaにはいつも助けられているので、少しでも皆さんのお役に立てば幸いです!
ただこの辺のことはちゃんと理解しているわけではないので、変なことを言っていれば知らせていただけると助かります()

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2