Skip to content

Latest commit

 

History

History
148 lines (103 loc) · 4.48 KB

development..md

File metadata and controls

148 lines (103 loc) · 4.48 KB

開発者向け資料

💻環境構築

前提条件 (必要なツール類)

  • VS Code のインストール ※ 環境設定が独力で可能であれば、他エディタで問題なし
  • fvm のインストール
  • Flutter Fire CLI のインストール

🔥Firebase

初期設定 (flutter_fire_cli)

下記のコマンドをそれぞれ実行することで、環境別のファイルをそれぞれの場所に配置する

  • 開発

    flutterfire configure --out=lib/firebase_options_dev.dart -p [Develop Project ID] --platforms=android,ios,web -i [iOS Bundle ID] -a [Android Package Name]
  • 本番

    flutterfire configure --out=lib/firebase_options.dart -p [Develop Project ID] --platforms=android,ios,web -i [iOS Bundle ID] -a [Android Package Name]

生成されるファイルの内、GoogleService-Info.plist, google-services.jsonは出力先を変更出来ないため、 それぞれの格納先に手動で配置すること

  • GoogleService-Info.plist
    • 開発:ios\dev\GoogleService-Info.plist
    • 本番:ios\prod\GoogleService-Info.plist
  • google-services.json
    • 開発:android\app\src\dev\google-services.json
    • 本番:android\app\src\prod\google-services.json

💻設定ファイルの追加

アプリの環境変数やFirebaseへの接続情報などの機密情報については、それぞれ下記の内容を定義する必要がある

💻環境変数 (dart-define)

  1. 下記の形式でdart-defines/配下にdev.json, prod.jsonを作成する

    {
        "flavor": "dev or prod",
        "appName": "(dev)アプリ名",
        "appIdSuffix": ".dev",
        "appWebUrl": "https://XXXXX.com",
        "appWebDomain": "XXXXX.com",
        "androidPackageName": "com.example.xxxxx.dev",
        "iosBundleId": "com.example.xxxxx.dev",
        "reversedClientId": "xxxxx",
        "appStoreId": "xxxxx",
        "dynamicLinkUriPrefix": "https://xxxxx.link"
    }

🔒機密情報 (.env)

  1. 下記の形式でscripts/env/配下に.env, .env.dev を作成する

    GOOGLE_REVERSED_CLIENT_ID=XXXXX
    GOOGLE_CLIENT_ID=XXXXX
    REVENUE_CAT_KEY_APPLE_STORE=XXXXX
    REVENUE_CAT_KEY_PLAY_STORE=XXXXX
    RECPTCHA_SITE_KEY=XXXXX
  2. 下記のコマンドを実行して、env.g.dartファイルを生成する

    fvm flutter pub run build_runner build --build-filter 'lib/env/*.dart'

AppStoreリリース用

  1. XCodeでビルドした際に作成されるExportOptions.plistをプロジェクトルート配下に配置する

▶️実行手順

デバッグ

  • Web

    # 開発環境
    flutter run -d web-server --web-port=5000 --web-renderer html --dart-define-from-file=dart_defines/dev.json
    
    # 本番環境
    flutter run -d web-server --web-port=5000 --web-renderer html --dart-define-from-file=dart_defines/prod.json
    fvm flutter build appbundle --dart-define-from-file=dart_defines/prod.json
    fvm flutter build ipa --export-options-plist=ExportOptions.plist --dart-define-from-file=dart_defines/prod.json

📋開発中に多用するコマンド

プロジェクトの変更

  1. 現在のプロジェクトを確認する

    firebase projects:list
    Project Display Name Project ID Project Number Resource Location ID
    [Project Name] [Project ID] (current) --- ---
    [Project Name] [Develop Project ID] --- ---
  2. 利用したいプロジェクトを選択する

    firebase use [Project ID]

Cloud Functionのデプロイ

  1. Functionsをデプロイする

    # すべてのファンクション
    firebase deploy --only functions
    # ファンクション名指定
    firebase deploy --only functions:[Function Name]

Firebase Hostingのデプロイ

  1. Web資産のビルドを行う

    flutter build web --web-renderer html --dart-define-from-file=dart_defines/prod.json
  2. Firebase Hostingへのデプロイを行う

    firebase deploy --only hosting