Skip to main content

Flutter Build

Overview

Flutterのビルド関連を記載しているセクション。

ビルドモードの種類

Flutterのビルドには複数のモードがありそれぞれの用途や特徴が異なる。
以下の表は主なビルドモードの違いを示している。

モード最適化ホットリロードサイズ小デバッグ用本番向け
--debug
--profile一部
--release

各ビルドモードの用途

  • --debug:開発中のデバッグ用途。ホットリロード対応。
  • --profile:パフォーマンス計測やプロファイリング用途。最適化は一部のみ。
  • --release:本番環境向け。最適化済で、サイズも小さく、署名付きAPK生成に使用。

また、以下のようなオプションも利用可能です

  • --flavor: 環境ごとにビルド(例: staging, production
  • --target: エントリーポイントの指定(例: main_staging.dart
  • --split-per-abi: ABIごとにAPKを分割して出力し、サイズ削減に貢献します。

Ad Hoc配布用途でのビルド戦略(Android)

AndroidではiOSと異なり、署名されたAPKを簡単に他の実機に配布・インストールすることが可能です。Google Playなどのストアにアップロードせずとも、S3やCloudFront経由でAPKファイルを共有できます。

Ad Hoc配布の場合は、以下の点を考慮して --release ビルドを使うのが一般的です。

  • 最適化されており、パフォーマンスや容量に優れる
  • 署名された状態でも、ユーザーが「提供元不明のアプリ」を許可すればインストール可能
  • 配布用にS3やFirebase Hostingなどと連携しやすい
tip

もし署名なしでビルドしたい場合は、android/app/build.gradlesigningConfig の記述をコメントアウトし、署名のないAPKを生成することもできる(ただし、インストール時により強い警告が出る可能性)

FlutterでGradle(グレイドル)が必要な理由

Resource