Build Mac App With Flutter
- Build Mac App With Flutter Iphone
- Flutter Mac Os App
- Flutter For Mac
- Install Flutter On Mac
- Flutter Download Mac
- Build Mac App With Flutter Windows
Mar 21, 2019 Designers are using Flutter to create attractive experiences like Reflectly, the number one journaling app on the Apple app store: There are also some design tools made for Flutter—like 2Dimensions Flare, which you can use to build animations and incorporate them into any app with a single line of code. From the command line: Connect your Android device to your computer with a USB cable. Enter cd where is your application directory. Run flutter install.
May 17, 2019 The technical preview for Flutter Web was released, and a live demonstration showed how Flutter apps can run on Desktop environments, like Chrome OS, Linux, Mac. To install and run Flutter, your development environment must meet these minimum requirements: Operating Systems: macOS (64-bit) Disk Space: 2.8 GB (does not include disk space for IDE/tools).
- Get the Flutter SDK
- iOS setup
- Android setup
System requirements
To install and run Flutter,your development environment must meet these minimum requirements:
- Operating Systems: macOS (64-bit)
- Disk Space: 2.8 GB (does not include disk space for IDE/tools).
- Tools: Flutter depends on these command-line tools being availablein your environment.
bash
curl
git
2.xmkdir
rm
unzip
which
zip
Get the Flutter SDK
Download the following installation bundle to get the latest stable release of theFlutter SDK:
For other release channels, and older builds,see the SDK archive page.
Extract the file in the desired location, for example:
If you don’t want to install a fixed version of the installation bundle, you can skip steps 1 and 2. Instead, get the source code from the Flutter repo on GitHub with the following command:
You can also change branches or tags as needed. For example, to get just the stable version:
Add the
flutter
tool to your path:This command sets your
PATH
variable for the current terminal window only.To permanently add Flutter to your path, seeUpdate your path.Optionally, pre-download development binaries:
The
flutter
tool downloads platform-specific development binaries asneeded. For scenarios where pre-downloading these artifacts is preferable(for example, in hermetic build environments,or with intermittent network availability), iOSand Android binaries can be downloaded ahead of time by running:For additional download options, see
flutter help precache
.
You are now ready to run Flutter commands!
Note: To update an existing version of Flutter, see Upgrading Flutter.
Run flutter doctor
Run the following command to see if there are any dependencies you need toinstall to complete the setup (for verbose output, add the -v
flag):
This command checks your environment and displays a report to the terminalwindow. The Dart SDK is bundled with Flutter; it is not necessary to installDart separately. Check the output carefully for other software you mightneed to install or further tasks to perform (shown in bold text).
For example:
The following sections describe how to perform these tasks and finish the setupprocess.
Once you have installed any missing dependencies, run the flutter doctor
command again to verify that you’ve set everything up correctly.
Warning: The flutter
tool uses Google Analytics to anonymously report feature usage statistics and basic crash reports. This data is used to help improve Flutter tools over time.
Flutter tool analytics are not sent on the very first run. To disable reporting, type flutter config --no-analytics
. To display the current setting, type flutter config
. If you opt out of analytics, an opt-out event is sent, and then no further information is sent by the Flutter tool.
By downloading the Flutter SDK, you agree to the Google Terms of Service. Note: The Google Privacy Policy describes how data is handled in this service.
Moreover, Flutter includes the Dart SDK, which may send usage metrics and crash reports to Google.
Update your path
You can update your PATH variable for the current session atthe command line, as shown in Get the Flutter SDK.You’ll probably want to update this variable permanently,so you can run flutter
commands in any terminal session.
The steps for modifying this variable permanently forall terminal sessions are machine-specific.Typically you add a line to a file that is executedwhenever you open a new window. For example:
- Determine the directory where you placed the Flutter SDK.You need this in Step 3.
- Open (or create) the
rc
file for your shell.Typingecho $SHELL
in your Terminal tells youwhich shell you’re using.If you’re using Bash,edit$HOME/.bash_profile
or$HOME/.bashrc
.If you’re using Z shell, edit$HOME/.zshrc
.If you’re using a different shell, the file pathand filename will be different on your machine. Add the following line and change
[PATH_TO_FLUTTER_GIT_DIRECTORY]
to bethe path where you cloned Flutter’s git repo:- Run
source $HOME/.<rc file>
to refresh the current window,or open a new terminal window toautomatically source the file. Verify that the
flutter/bin
directoryis now in your PATH by running:Verify that the
flutter
command is available by running:
Note: As of Flutter’s 1.19.0 dev release, the Flutter SDK contains the dart
command alongside the flutter
command so that you can more easily run Dart command-line programs. Downloading the Flutter SDK also downloads the compatible version of Dart, but if you’ve downloaded the Dart SDK separately, make sure that the Flutter version of dart
is first in your path, as the two versions might not be compatible. The following command (on macOS, linux, and chrome OS), tells you whether the flutter
and dart
commands originate from the same bin
directory and are therefore compatible. (Some versions of Windows support a similar where
command.)
As shown above, the two commands don’t come from the same bin
directory. Update your path to use commands from /path-to-flutter-sdk/bin
before commands from /usr/local/bin
(in this case). After updating your shell for the change to take effect, running the which
or where
command again should show that the flutter
and dart
commands now come from the same directory.
To learn more about the dart
command, run dart -h
from the command line, or see the dart tool page.
Platform setup
macOS supports developing Flutter apps in iOS, Android,and the web (technical preview release).Complete at least one of the platform setup steps now,to be able to build and run your first Flutter app.
iOS setup
Install Xcode
To develop Flutter apps for iOS, you need a Mac with Xcode installed.
- Install the latest stable version of Xcode(using web download or the Mac App Store).
Configure the Xcode command-line tools to use thenewly-installed version of Xcode byrunning the following from the command line:
This is the correct path for most cases,when you want to use the latest version of Xcode.If you need to use a different version,specify that path instead.
- Make sure the Xcode license agreement is signed byeither opening Xcode once and confirming or running
sudo xcodebuild -license
from the command line.
Versions older than the latest stable version may still work,but are not recommended for Flutter development.Using old versions of Xcode to target bitcode is notsupported, and is likely not to work.
With Xcode, you’ll be able to run Flutter apps onan iOS device or on the simulator.
Set up the iOS simulator
To prepare to run and test your Flutter app on the iOS simulator,follow these steps:
On your Mac, find the Simulator via Spotlight orby using the following command:
- Make sure your simulator is using a 64-bit device(iPhone 5s or later) by checking the settings inthe simulator’s Hardware > Device menu.
- Depending on your development machine’s screen size,simulated high-screen-density iOS devicesmight overflow your screen. Set the device scale under theWindow > Scale menu in the simulator.
Create and run a simple Flutter app
To create your first Flutter app and test your setup,follow these steps:
Create a new Flutter app by running the following from thecommand line:
A
my_app
directory is created, containing Flutter’s starter app.Enter this directory:To launch the app in the Simulator,ensure that the Simulator is running and enter:
Deploy to iOS devices
To deploy your Flutter app to a physical iOS deviceyou need the third-party CocoaPods dependency managerand an Apple Developer account. You’ll also needto set up physical device deployment in Xcode.
Install and set up CocoaPods by running the following commands:
Follow the Xcode signing flow to provision your project:
- Open the default Xcode workspace in your project byrunning
open ios/Runner.xcworkspace
in a terminalwindow from your Flutter project directory. - Select the device you intend to deploy to in the devicedrop-down menu next to the run button.
- Select the
Runner
project in the left navigation panel. - In the
Runner
target settings page,make sure your Development Team is selected.The UI varies depending on your version of Xcode.- For Xcode 10, look under General > Signing > Team.
- For Xcode 11 and newer, look underSigning & Capabilities > Team.
When you select a team,Xcode creates and downloads a Development Certificate,registers your device with your account,and creates and downloads a provisioning profile (if needed).
- To start your first iOS development project,you might need to sign intoXcode with your Apple ID. Development and testing is supported for any Apple ID.Enrolling in the Apple Developer Program is required todistribute your app to the App Store.For details about membership types,see Choosing a Membership.
The first time you use an attached physical device for iOSdevelopment, you need to trust both your Mac and theDevelopment Certificate on that device.Select
Trust
Reminder app for android and mac. in the dialog prompt whenfirst connecting the iOS device to your Mac.Then, go to the Settings app on the iOS device,select General > Device Managementand trust your Certificate.
If automatic signing fails in Xcode, verify that the project’sGeneral > Identity > Bundle Identifier value is unique.
- Open the default Xcode workspace in your project byrunning
Start your app by running
flutter run
.
Android setup
Note: Flutter relies on a full installation of Android Studio to supply its Android platform dependencies. However, you can write your Flutter apps in a number of editors; a later step discusses that.
Install Android Studio
- Download and install Android Studio.
- Start Android Studio, and go through the ‘Android Studio Setup Wizard’.This installs the latest Android SDK, Android SDK Command-line Tools,and Android SDK Build-Tools, which are required by Flutterwhen developing for Android.
Set up your Android device
To prepare to run and test your Flutter app on an Android device,you need an Android device running Android 4.1 (API level 16) or higher.
- Enable Developer options and USB debugging on your device.Detailed instructions are available in theAndroid documentation.
- Windows-only: Install the Google USBDriver.
- Using a USB cable, plug your phone into your computer. If prompted on yourdevice, authorize your computer to access your device.
- In the terminal, run the
flutter devices
command to verify thatFlutter recognizes your connected Android device. By default,Flutter uses the version of the Android SDK where youradb
tool is based. If you want Flutter to use a different installationof the Android SDK, you must set theANDROID_SDK_ROOT
environmentvariable to that installation directory.
Set up the Android emulator
To prepare to run and test your Flutter app on the Android emulator,follow these steps:
- EnableVM accelerationon your machine.
- Launch Android Studio > Tools > Android > AVD Manager and selectCreate Virtual Device. (The Android submenu is only presentwhen inside an Android project.)
- Choose a device definition and select Next.
- Select one or more system images for the Android versions you wantto emulate, and select Next.An x86 or x86_64 image is recommended.
- Under Emulated Performance, select Hardware - GLES 2.0 to enablehardwareacceleration.
Verify the AVD configuration is correct, and select Finish.
For details on the above steps, see ManagingAVDs.
- In Android Virtual Device Manager, click Run in the toolbar.The emulator starts up and displays the default canvas for yourselected OS version and device.
Web setup
Flutter has early support for building web applications using thebeta
channel of Flutter. To add support for web development, followthese instructions when you’ve completed the setup above.
Next step
Set up your preferred editor.
- Create a new project
- Create and run
- macOS-specific support
- Entitlements and the App Sandbox
- Plugin support
Desktop support allows you to compile Flutter source codeto a native macOS or Linux desktop app. Flutter’s desktopsupport also extends to plugins—you can install existing plugins that support the macOS or Linux platforms,or you can create your own.
Warning:Work in progress! This page covers desktop support for macOS and Linux, which are available as alpha-quality features in the Flutter dev channel. Windows platform support is still under development.
These platforms still have notable feature gaps, including accessibility support. We strongly recommend that you examine the Desktop shells page in the Flutter wiki to understand known limitations and ongoing work.
Note: To compile a macOS desktop app, you must build the app on a Mac. To compile a Linux desktop app, you must build the app on Linux. If you experience a problem that hasn’t yet been reported, please file an issue and include “desktop:macos” or “desktop:linux” in the title.
Requirements
To create a Flutter app with desktop support, you need thefollowing software:
- Flutter SDK. See theFlutter SDK installation instructions.
- Optional: An IDE that supports Flutter.You can install Android Studio, IntelliJ IDEA,or Visual Studio Code andinstall the Flutter and Dart pluginsto enable language support and tools for refactoring,running, debugging, and reloading your desktop appwithin an editor. See setting up an editorfor more details.
For macOS desktop development,you need the following in addition to the Flutter SDK:
- CocoaPods if you use plugins
For Linux desktop development,you need the following in addition to the Flutter SDK:
Linux installation varies by distro, buton Ubuntu you might use the following command:
Create a new project
You can use the following stepsto create a new project with desktop support.
Set up
At the command line, perform the following commands tomake sure that you have the latest desktop support and thatit’s enabled. If you see “flutter: command not found”,then make sure that you have installed theFlutter SDK and that it’s in your path.
Where _
To ensure that desktop is installed,list the devices available.You should see something like the following(you’ll see either macOS or Linux, not both):
Build Mac App With Flutter Iphone
You might also run flutter doctor
to see if there areany unresolved issues. It should look something likethe following on macOS:
On Linux, you might see something like the following:
If flutter doctor
finds problems for a platform you don’tsupport, you can ignore those warnings. You don’t haveto install Android Studio and the Android SDK,for example, if you’re writing a Linux desktop app.
After enabling desktop support, restart your IDE.You should now see macOS (desktop) or linux (desktop) in the device pulldown.
Note: You only need to execute flutter config --enable-<platform>-desktop
once. You can always check the status of your configuration using the no-argument flutter config
command.
Create and run
Creating a new project with desktop support is no differentthan creating a new Flutter project for other platforms.
Once you’ve configured your environment for desktopsupport, you can create and run a desktop app eitherin the IDE or from the command line.
IDE
After you’ve configured your environment to supportdesktop, make sure you restart the IDE if it wasalready running.
Create a new app in your IDE and it automaticallycreates iOS, Android, and desktop versions of your app.(And web, too, if you’ve enabled web support.)From the device pulldown, select macOS (desktop)or linux (desktop) and run your app to see itlaunch on the desktop.
Command line
To create a new app that includes desktop support(in addition to mobile support), run the following commands,substituting myapp
with the name of your project:
To launch your app from the command line,enter one of the following from the topof the package:
Note: If there aren’t any other connected devices, the -d <platform>
tag is optional.
Build a release app
To generate a release build run one of the following commands:
In general, we don’t recommend releasing a desktop app untildesktop support is stable.However, if you’re interested in learning how to publisha Linux app to the Snap Store, seeBuild and release a Linux desktop app.
Add desktop support to an existing app
To add desktop support to an existing project,run the following command in a terminal from theroot project directory:
This adds the necessary files and directories to yourFlutter project.
macOS-specific support
The following information applies only to macOS development.
Entitlements and the App Sandbox
macOS builds are configured by default to be signed,and sandboxed with App Sandbox.This means that if you want to confer specificcapabilities or services on your macOS app,such as the following:
- Accessing the internet
- Capturing movies and images from the built-in camera
- Accessing files
Then you must set up specific entitlements in Xcode.The following section tells you how to do this.
Setting up entitlements
Managing sandbox settings is done in themacos/Runner/*.entitlements
files. When editingthese files, you shouldn’t remove the originalRunner-DebugProfile.entitlements
exceptions(that support incoming network connections and JIT),as they’re necessary for the debug
and profile
modes to function correctly.
If you’re used to managing entitlement files throughthe Xcode capabilities UI, be aware that the capabilitieseditor updates only one of the two files or,in some cases, it creates a whole new entitlementsfile and switches the project to use it for all configurations.Either scenario causes issues. We recommend that youedit the files directly. Unless you have a very specificreason, you should always make identical changes to both files.
If you keep the App Sandbox enabled (which is required if youplan to distribute your app in the App Store), you need to manageentitlements for your application when you add certain pluginsor other native functionality. For instance, using thefile_chooser
plugin requires adding either thecom.apple.security.files.user-selected.read-only
orcom.apple.security.files.user-selected.read-write
entitlement.Another common entitlement is com.apple.security.network.client
,which you must add if you make any network requests.
Important: The com.apple.security.network.server
entitlement, which allows incoming network connections, is enabled by default only for debug
and profile
builds to enable communications between Flutter tools and a running app. If you need to allow incoming network requests in your application, you must add the com.apple.security.network.server
entitlement to Runner-Release.entitlements
as well, otherwise your app will work correctly for debug or profile testing, but will fail with release builds.
For more information on these topics,see App Sandbox and Entitlementson the Apple Developer site.
Hardened runtime
If you choose to distribute your application outsideof the App Store, you need to notarize your applicationfor compatibility with macOS 10.15+.This requires enabling the Hardened Runtime option.Once you have enabled it, you need a valid signingcertificate in order to build.
Flutter Mac Os App
By default, the entitlements file allows JIT for debug builds but,as with App Sandbox, you may need to manage other entitlements.If you have both App Sandbox and Hardened Runtime enabled,you may need to add multiple entitlements for the same resource.For instance, microphone access would require bothcom.apple.security.device.audio-input
(for Hardened Runtime)and com.apple.security.device.microphone
(for App Sandbox).
For more information on this topic,see Hardened Runtime on the Apple Developer site.
Plugin support
Flutter on the desktop supports using and creating plugins.
Flutter For Mac
To use a plugin that supports desktop,follow the steps for plugins in using packages.Flutter automatically adds the necessary native codeto your project, as with iOS or Android.
We recommend the following plugins, which have beenupdated to work for macOS and Linux desktop apps:
Use the following links to find all packages on pub.devthat support desktop apps. These links lists all packages,not just plugin packages. (Remember that plugin packages,or plugins, provide an interface to platform-specific services.)
Creating a plugin
Federated plugins are a recent addition toFlutter’s plugin support. They allow you toseparate functionality for different platformsinto different packages; so the Androidimplementation can be in one package,and the macOS implementation in another.Desktop plugins are perfectly suitedto be implemented as part of a federatedplugin. For more information, seethe following resources:
Install Flutter On Mac
- Developing packages and plugins, including theFederated plugins section.
- How to write a Flutter web plugin, part 2,covers the structure of federated plugins andcontains information applicable to desktopplugins.
- Modern Flutter Plugin Development coversrecent enhancements to Flutter’s plugin support.
Samples and codelabs
- Write a Flutter desktop application
- A codelab that walks you through buildinga desktop app (for macOS and Linux) thatintegrates the GitHub GraphQL API with yourFlutter app.
Flutter Download Mac
You can run the following samples as desktop apps,as well as download and inspect the source code tolearn more about Flutter desktop support.
- Flutter Gallery running web app, repo
- A samples project hosted on GitHub to help developersevaluate and use Flutter. The Gallery consists of acollection of Material design widgets, behaviors,and vignettes implemented with Flutter.You can clone the project and run Gallery as a desktop appby following the instructions provided in the README.
- Photo Search app
- A sample app built as a desktop application(for both macOS and Linux) that usesthe following desktop-supported plugins:
What’s next
Stay tuned for updates on desktop support!We continue to develop support for macOS,Windows, and Linux.
Build Mac App With Flutter Windows
Watch the Desktop shells page on the Flutter wikifor more information and ongoing updates.