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.gradle の signingConfig の記述をコメントアウトし、署名のないAPKを生成することもできる(ただし、インストール時により強い警告が出る可能性)