Skip to content

Installation

Axl Nunez edited this page Jul 24, 2026 · 1 revision

Installation

Download platform artifacts from the Releases page. To build it yourself instead, see Building from Source.

Which file do I need?

Platform File Notes
Android / Android TV Moonfin_Android_v<version>.apk The same APK installs on phones, tablets, and Android TV / Google TV (leanback)
iOS Moonfin_iOS_v<version>.ipa Default workflow output, for self-signing
Windows Moonfin_Windows_v<version>.exe x64 installer, plus a native ARM64 installer
macOS Moonfin_macOS_v<version>.dmg App bundle builds are also supported
Linux Moonfin_Linux_v<version>.<ext> Tarball / AppImage / deb / rpm / snap / flatpak, depending on tools
Web served by the Moonbase plugin Installable PWA, no download needed
Tizen (Samsung TV) build a .tpk yourself Experimental, see below

Arch Linux (AUR)

Install from the AUR using any of these commands:

yay -S moonfin
paru -S moonfin
pamac build moonfin

If you use another AUR helper, substitute the command accordingly.

Web

Moonfin runs in the browser as an installable PWA served through the Moonbase server plugin, with an in-browser theme editor. Nothing needs to be installed on the client.

Tizen (Samsung TV): experimental

Tizen is a separate build target driven by the flutter-tizen wrapper (Samsung TVs require the .NET app runner; the platform project lives in tizen/). It builds a signed .tpk.

Current limitations

Playback uses the native Tizen AVPlay player (via video_player / video_player_tizen) instead of libmpv/ExoPlayer. As a result:

  • No runtime audio or subtitle track switching (tracks are selected server-side via the device profile / transcoding)
  • No bitmap or ASS subtitle styling
  • PDF/EPUB reading, in-app web trailers, and desktop window management are disabled

Toolchain prerequisites

  1. flutter-tizen: clone it and add flutter-tizen/bin to PATH (or set FLUTTER_TIZEN_BIN). First run downloads its bundled Flutter engine:
    git clone https://github.com/flutter-tizen/flutter-tizen.git ~/flutter-tizen
    export PATH="$HOME/flutter-tizen/bin:$PATH"
    flutter-tizen doctor -v
  2. Tizen Studio + TV extension (requires a Java runtime): provides the SDK that compiles and signs the .tpk, plus the TV emulator. Set TIZEN_SDK if installed to a non-default location.
  3. A Tizen certificate / security profile (author + distributor certs) to sign the package. Pass its name via MOONFIN_TIZEN_SECURITY_PROFILE.

Build

MOONFIN_TIZEN_SECURITY_PROFILE=<your-profile> ./build-tizen.sh

The script runs flutter-tizen build tpk --device-profile tv --dart-define=MOONFIN_TIZEN=true and emits the .tpk under build/tizen/tpk/. The MOONFIN_TIZEN=true dart-define is what flips the app into its Tizen code paths (PlatformDetection.isTizen), since Tizen otherwise reports as Linux.

Run on the TV emulator or device

flutter-tizen emulators --launch <emulator-id>
flutter-tizen run -d <device>

Clone this wiki locally