Build and launch Sngine Messenger on macOS and Windows.
This guide covers the developer machine setup, Flutter desktop commands, release builds, branding assets, operating system permissions, and final checks needed before delivering the desktop messenger to customers.
Requirements
Prepare the tools below before opening the project.
Flutter SDK
Install the current stable Flutter SDK and make sure the `flutter` command is available in your terminal.
Desktop toolchain
macOS requires Xcode tools. Windows requires Visual Studio with the desktop C++ workload.
Project package
Extract the Messenger desktop source package into a clean working folder before running commands.
flutter --version
flutter doctor -v
Install Flutter for macOS desktop
Install Apple tools
xcode-select --install
sudo xcodebuild -license accept
Open Xcode once after installation so macOS finishes the first-run setup.
Enable macOS desktop
flutter config --enable-macos-desktop
flutter doctor -v
Fix every macOS item reported by `flutter doctor` before building a release.
Install Flutter for Windows desktop
Install Visual Studio
Install Visual Studio 2022 and select the “Desktop development with C++” workload.
Enable Windows desktop
flutter config --enable-windows-desktop
flutter doctor -v
Run the commands from PowerShell, Windows Terminal, or Command Prompt.
Open the project
After extracting the desktop source package, run the setup commands from the project root.
cd sangine-messanger-dsktop
flutter clean
flutter pub get
flutter analyze
Recommended editor
Use Visual Studio Code, Android Studio, or IntelliJ with Flutter and Dart plugins installed.
Upload the Desktop API Addon to Sngine
The desktop application needs the desktop API addon installed inside the same Sngine script.
Upload the folder named api-addon-messanger-desktop to the Sngine root before testing login,
conversations, stories, stickers, calls, media, and app settings.
Correct server location
your-sngine-root/
bootstrap.php
includes/
content/
api-addon-messanger-desktop/
install.php
update.php
index.php
admin/
sql/
seeders/
assets/
Do not upload here
content/themes/api-addon-messanger-desktop
includes/api-addon-messanger-desktop
api-addon-messanger-desktop/api-addon-messanger-desktop
api-addons/api-addon-messanger-desktop
Upload using File Manager, FTP, or SFTP
- Extract the Sngine Messenger Desktop package on your computer.
- Find the folder named
api-addon-messanger-desktop. - Open the hosting File Manager, FTP client, or SFTP client.
- Go to the Sngine root folder. It must contain
bootstrap.php,includes, andcontent. - Upload the full
api-addon-messanger-desktopfolder into that root folder. - If you upload a ZIP file, extract it in the Sngine root and confirm the folder is not nested twice.
Correct:
https://your-domain.com/api-addon-messanger-desktop/install.php
Wrong:
https://your-domain.com/api-addon-messanger-desktop/api-addon-messanger-desktop/install.php
Install or update the addon
Fresh install
Open the installer, enter the Messenger Desktop purchase code, and complete the checks.
https://your-domain.com/api-addon-messanger-desktop/install.php
Existing installation
After replacing addon files with a newer package, open the update page once.
https://your-domain.com/api-addon-messanger-desktop/update.php
Open the desktop addon dashboard
After install/update, open the admin area to confirm branding, app logo, license status, colors, calls, Agora, and sticker settings.
https://your-domain.com/api-addon-messanger-desktop/admin/index.php
Folder name matters
Keep the final server folder name as api-addon-messanger-desktop.
If your downloaded ZIP has a different outer name, upload or rename only the actual addon folder.
Run on macOS
Use this command while developing and testing the desktop app locally on a Mac.
flutter run -d macos
Release for macOS
Build a production macOS app after all local checks pass.
flutter build macos --release
Output folder
build/macos/Build/Products/Release/
Distribution notes
For public distribution, configure signing, notarization, app icon, bundle identifier, and permissions in the macOS runner.
Run on Windows
Use this command while developing and testing the desktop app locally on Windows.
flutter run -d windows
Release for Windows
Build the production Windows executable from a Windows machine.
flutter build windows --release
Output folder
build\windows\x64\runner\Release\
Distribution notes
Package the Release folder with the executable and required DLL files. For Microsoft Store release, prepare MSIX packaging and store metadata.
Create a Windows installer
A Windows release should not be delivered as source code. Build a release folder first, then package it as an installer that includes the executable, DLL files, data folder, icon, version, and shortcuts.
What you need on the Windows build machine
Build tools
- Windows 10 or Windows 11, 64-bit.
- Flutter stable channel.
- Visual Studio 2022 with “Desktop development with C++”.
- Git and a terminal such as PowerShell or Windows Terminal.
Installer tools
- Inno Setup for a direct
.exeinstaller. - MSIX Packaging Tool or the
msixworkflow for Microsoft Store style packages. - A code signing certificate if the app will be released publicly.
Build the Windows release folder
flutter clean
flutter pub get
flutter analyze
flutter build windows --release
The files to package are inside:
build\windows\x64\runner\Release\
Recommended installer options
Direct customer installer
Use Inno Setup when you want to deliver a normal installer from your website or customer portal.
Add every file from the Release folder, install to Program Files, create desktop/start menu
shortcuts, and use the final app icon.
Official store release
Use MSIX and Microsoft Partner Center for Microsoft Store distribution. Prepare the store identity, publisher information, app name, screenshots, privacy policy, and certification metadata.
Before publishing the installer
Create the license and prepare credentials
Before building a customer release, collect the purchase code from Flutter Crafters Store and the API credentials from the customer’s Sngine admin panel. These values are used to activate the desktop addon and prepare the desktop app connection to the customer website.
Get the purchase code
- Open Flutter Crafters My Purchases.
- Sign in with the account that purchased Sngine Messenger Desktop.
- Open the Messenger Desktop purchase item.
- Copy the Purchase Code or License Code.
Get API Key and API Secret
- Open the customer Sngine admin panel.
- Go to
/admincp/apis. - Copy API Key.
- Copy API Secret.
Example:
https://sngine-app.fluttercrafters.com/admincp/apis
Create or activate the license
- Open license.fluttercrafters.com.
- Select the Sngine Messenger Desktop product or license workflow.
- Enter the customer domain, for example
https://your-domain.com. - Enter the purchase code from Flutter Crafters Store.
- Enter the Sngine API Key and API Secret from
/admincp/apiswhen requested. - Generate or activate the license for that domain.
- Use the generated license/config output exactly as shown by the license portal before building the release.
Where these values are used
Desktop addon installer
Use the purchase code when opening the desktop addon installer:
https://your-domain.com/api-addon-messanger-desktop/install.php
Desktop app connection
The desktop app connects to the customer Sngine website using the site URL, API Key, and API Secret. Prepare these values before building the customer release package.
Security note
Never publish the API Secret in documentation, screenshots, public tickets, or release notes. Treat it like a password. If it is exposed, regenerate it from the Sngine admin panel and rebuild the app.
Change the logo and desktop app icon
The Messenger Desktop has two different brand assets. The in-app logo is shown inside the Flutter UI and can be loaded from the API when configured. The desktop app icon is the native operating system icon shown in the Dock, Launchpad, Start menu, installer, and taskbar.
In-app logo
Upload the customer logo from the Messenger Desktop addon/admin settings when available. The app will use the API logo URL first. If no remote logo is configured, it falls back to the local file below.
assets/logo.png
- Prepare a transparent PNG logo that works on light and dark backgrounds.
- Recommended size: 1200 x 400 px or another wide transparent logo.
- Replace
assets/logo.pngonly when you want a built-in fallback logo. - Run
flutter cleanafter replacing the image if the old asset is still cached.
Shared source icon
Start from one square master icon, then export the platform files from it. Use a 1024 x 1024 px PNG with no text that becomes unreadable at small sizes.
assets/branding/sngine_messenger_desktop_icon_1024.png
- Keep the master icon square.
- Use enough padding so the icon does not touch the rounded platform mask.
- Export macOS PNG sizes and one Windows
.icofile from the same master icon.
macOS app icon
Replace every PNG inside the macOS AppIcon set. Keep the existing file names unless you also
edit Contents.json.
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
- Replace all sizes before building the release app.
- Run
flutter clean, thenflutter build macos --release. - Open the release app and confirm the Dock and Finder icon are updated.
Windows app icon
Windows reads the app icon from the runner resource file. Replace the ICO file before building the release folder and before creating the installer.
windows/runner/resources/app_icon.ico
windows/runner/Runner.rc
- Create an
.icofile that includes 16, 32, 48, 64, 128, and 256 px sizes. - Keep the path used by
Runner.rc:resources\\app_icon.ico. - Run
flutter clean, thenflutter build windows --release. - Use the same
app_icon.icoin Inno Setup, MSIX, or your installer tool.
Branding checklist
Launch checklist
api-addon-messanger-desktop folder is uploaded to the Sngine root and install/update has been completed.store.fluttercrafters.com/my-purchases./admincp/apis and used only in the secure release workflow.Troubleshooting
`flutter` command not found
Add the Flutter SDK `bin` folder to your PATH, restart the terminal, then run `flutter doctor -v` again.
macOS permission blocked
Open System Settings and allow microphone, camera, notifications, or file access for the app.
Windows build tools missing
Modify Visual Studio installation and enable “Desktop development with C++”.
Build cache issue
flutter clean
flutter pub get
flutter build windows --release