Publishing a Linux desktop app made with Flutter involves packaging it properly and distributing it through a method that fits your audience (e.g. direct download, GitHub, PPA, Snap, Flatpak, etc.).
Here’s a complete step-by-step guide from scratch tailored for a Flutter Linux app.
Make sure you have:
- Flutter installed and working with desktop support (
flutter doctor) dpkg-deb,cmake,make,gcc, andglibinstalled on Ubuntu- Your Flutter app is already working on Linux (
flutter run -d linux)
flutter build linux --releaseThis creates your app in:
build/linux/x64/release/bundle/
Contents:
ir_net(binary)flutter_assets/(assets)- Shared libraries
Structure your .deb folder manually:
mkdir -p ir_net_pkg/DEBIAN
mkdir -p ir_net_pkg/usr/bin/ir_net
mkdir -p ir_net_pkg/usr/share/applications
mkdir -p ir_net_pkg/usr/share/icons/hicolor/256x256/appscp -r build/linux/x64/release/bundle/* ir_net_pkg/usr/bin/ir_net/Make sure the binary is executable:
chmod +x ir_net_pkg/usr/bin/ir_net/ir_netCreate ir_net_pkg/DEBIAN/control:
Package: ir-net
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Depends: libgtk-3-0, libglib2.0-0
Maintainer: Your Name <you@example.com>
Description: IR Net – A Flutter desktop app for Linux.
Create ir_net_pkg/usr/share/applications/ir_net.desktop:
[Desktop Entry]
Name=IR Net
Comment=IR Net Desktop App
Exec=/usr/bin/ir_net/ir_net
Icon=ir_net
Terminal=false
Type=Application
Categories=Utility;Put your 256x256 PNG icon in:
cp linux/assets/icon.png ir_net_pkg/usr/share/icons/hicolor/256x256/apps/ir_net.pngdpkg-deb --build ir_net_pkgThis creates:
ir_net_pkg.deb
Rename it if you like:
mv ir_net_pkg.deb ir-net_1.0.0_amd64.debsudo dpkg -i ir-net_1.0.0_amd64.debTo fix missing dependencies:
sudo apt-get install -fThen launch your app from the system menu or via:
/usr/bin/ir_net/ir_netHere are common methods to publish:
- Create a GitHub repo (if you haven’t)
- Upload your
.debfile in the "Releases" section - Share the link (e.g. https://github.com/you/ir_net/releases)
Use if you want your app in the Snap Store. You'll need:
- A Snapcraft.yaml file
- An account at https://snapcraft.io
- Snapcraft CLI
Let me know if you want this path — it's a bit more involved.
Alternative to Snap. Good for wide desktop support.
If you want users to apt install ir-net:
- Host your
.debfiles on a web server or Launchpad - Sign your packages
- Create a repository index
Let me know if you want to go this route.
| ✅ Task | Done? |
|---|---|
flutter build linux |
✔️ |
Create .deb structure |
✔️ |
| Add control & desktop files | ✔️ |
| Include icon and binary | ✔️ |
Build & test .deb package |
✔️ |
| Upload or publish | ⬜ |