snapd
, you can install Flutter using the Snap Store,or at the command line:snapd
is unavailable on the Linux distro you’re using,you might use the following command:windows
, macos
, or linux
:flutter doctor
to see if there areany unresolved issues. It should look something likethe following on Windows: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.flutter config --enable-<platform>-desktop
once. You can always check the status of your configuration using the no-argument flutter config
command.myapp
with the name of your project:-d <platform>
tag is optional.buildwindowsrunner<build mode>
.In addition to that executable, you need the following:.dll
filesdata
directoryapplication-local
option, you need to copy: msvcp140.dll
vcruntime140.dll
vcruntime140_1.dll
.app
is self-contained, and can be distributed as-is.macos/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.file_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.com.apple.security.network.client
entitlement,for example, network requests will fail with a message such as: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.com.apple.security.device.audio-input
(for Hardened Runtime)and com.apple.security.device.microphone
(for App Sandbox).url_launcher
is reallyurl_launcher_windows
, but a Flutter developer can simply add theurl_launcher
package to their pubspec.yaml
as a dependency and thebuild process pulls in the correct implementation based on the target platform.Federation is handy because different teams with different expertisecan build plugin implementations for different platforms.You can add a new platform implementation to anyendorsed federated plugin on pub.dev, so long as you coordinatethis effort with the original plugin author.