-
Notifications
You must be signed in to change notification settings - Fork 1
Flutter Installation Bundles
Flutter has installation bundles which you can download and install for both the beta and dev channels.
The installation bundles were designed to allow you to have a completely populated environment without having to first download the Git repository, then compile the flutter tool, etc.
Creating an installation bundle consists of running the following steps. These steps will pre-cache all of the necessary components for working offline. One could follow these steps e.g. to create an installation bundle for the master
branch.
-
OPTIONAL: Set and export the
PUB_CACHE
environment variable to point to the location where you would like your pub cache to be stored. If you don't set this, it will be stored in pub's default location in your home directory (varies based on your OS). Alternatively, if you create theflutter/.pub-cache
directory before any commands that invokepub
(e.g. theflutter packages
command), then the flutter tool will automatically use it, and you won't have to set PUB_CACHE in your environment. - WINDOWS ONLY: Download and install a command line version of Git. Windows doesn't come with git pre-installed, so you'll have to download it from one of the many sources on the Internet.
-
git clone -b master https://github.com/flutter/flutter.git
to clone the Flutter Git repo into the directory "flutter" in the current directory. - Change directories into the newly created "flutter" directory.
- Add the Flutter
bin
directory to your path:- Windows:
set PATH="%PATH%;%CD%\bin\flutter"
- Other platforms:
export PATH="$PATH:$PWD/flutter"
- Windows:
-
flutter doctor
to check your installation and build the initial snapshot of theflutter
tool. Install any missing software it tells you about, such as the Android SDK, or XCode tools. -
flutter update-packages
will download all of the pub package dependencies needed to build any of the packages in the Flutter main distribution. -
flutter precache
will make sure that theflutter
tool's cache of binary artifacts is up-to-date. -
OPTIONAL:
flutter ide-config --overwrite
will generate and update IDE configuration files for the Flutter repo. You only need to do this if you are using an IDE like IntelliJ or VS Code. - In a temporary directory, run
flutter create --template=app app_sample
,flutter create --template=package package_sample
, andflutter create --template=plugin plugin_sample
. You may then remove the app_sample, package_sample, and plugin_sample directories. This will populate the pub cache with any additional packages needed for creating new flutter projects using each of those templates.
Another alternative to the above steps is to run the prepare_package.dart script directly (which is what we use to create the installation bundles in the first place). You would invoke that script like this:
- Go as far as the
flutter doctor
step in the above steps (or if you have a working flutter repo already, you can skip that: it can be from another channel, but use a fairly current one for best results). - Invoke
./bin/cache/dart-sdk/bin/dart ./dev/bots/prepare_package.dart --temp_dir $TMPDIR --revision $REVISION --branch master --output $PWD
, from theflutter
root, whereTMPDIR
is set to a directory where there are several gigabytes of free space, andREVISION
is set to the 40-character git hash of the revision you wish to be working on.
This will build an archive bundle in the current directory that has done all of the above steps, and contains the master
branch.
- Home of the Wiki
- Roadmap
- API Reference (stable)
- API Reference (master)
- Glossary
- Contributor Guide
- Chat on Discord
- Code of Conduct
- Issue triage reports
- Our Values
- Tree hygiene
- Issue hygiene and Triage
- Style guide for Flutter repo
- Project teams
- Contributor access
- What should I work on?
- Running and writing tests
- Release process
- Rolling Dart
- Manual Engine Roll with Breaking Commits
- Updating Material Design Fonts & Icons
- Postmortems
- Setting up the Framework development environment
- The Framework architecture
- The flutter tool
- API Docs code block generation
- Running examples
- Using the Dart analyzer
- The flutter run variants
- Test coverage for package:flutter
- Writing a golden-file test for package:flutter
- Setting up the Engine development environment
- Compiling the engine
- Debugging the engine
- Using Sanitizers with the Flutter Engine
- Testing the engine
- The Engine architecture
- Flutter's modes
- Engine disk footprint
- Comparing AOT Snapshot Sizes
- Custom Flutter engine embedders
- Custom Flutter Engine Embedding in AOT Mode
- Flutter engine operation in AOT Mode
- Engine-specific Service Protocol extensions
- Crashes
- Supporting legacy platforms
- Metal on iOS FAQ
- Engine Clang Tidy Linter
- Why we have a separate engine repo
- Reduce Flutter engine size with MLGO
- Setting up the Plugins development environment
- Setting up the Packages development environment
- Plugins and Packages repository structure
- Plugin Tests
- Contributing to Plugins and Packages
- Releasing a Plugin or Package
- Unexpected Plugins and Packages failures