Important Notice Do not use cracked, nulled, leaked, or unauthorized copies of this product. To receive valid updates, support, and secure files, purchase the official version only from store.fluttercrafters.com.

Sngine Messenger Documentation

This document explains the real setup flow for the Messenger Flutter app before delivery or production release. It covers Flutter installation, server upload, Messenger addon activation, package name changes, app branding, license activation, deep links, Timeline integration, Agora calls, and Messenger app settings.

The instructions below are based on the current project files and Messenger addon structure, so buyers can follow them directly without searching through the source code.

Messenger App Official Package Separate Backend Addon Agora Calls

1. Requirements

At the time this document was updated on April 25, 2026, the latest stable versions shown in the official sources were:

Tool Stable Version Notes
Flutter 3.41.5 Use stable Flutter only for production delivery.
Xcode 26.4.1 Required for iOS builds on macOS.
Android Studio Panda 4 | 2025.3.4 Required for Android SDK and emulator tools.
Always use stable releases, not beta or canary versions, when preparing the app for customers or stores.

2. Install Flutter

  1. Download Flutter SDK from the official Flutter website.
  2. Extract it to a fixed location such as /Users/yourname/development/flutter.
  3. Add flutter/bin to your system PATH.
  4. Run flutter doctor.
  5. Complete any missing dependencies reported by Flutter Doctor.
flutter --version
flutter doctor
flutter doctor -v
Continue only after flutter doctor shows a clean setup for the platforms you want to support.

3. Xcode and Android Studio

Xcode Install Xcode from Apple, open it once, accept the license agreement, and let it install the required components.
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
Android Studio Install Android Studio, then confirm Android SDK, Platform Tools, Build Tools, Emulator, and at least one device image are installed.
  • Xcode is required if you want to build the iOS app.
  • Android Studio is required for Android SDK and release tooling.
  • After installation, run flutter doctor again.

4. Run the Project

flutter pub get
flutter run

Build release files

flutter build apk --release
flutter build appbundle --release
flutter build ios --release
Before building release files, make sure the Messenger backend addon is uploaded, the license file is replaced, package names are updated, and Agora settings are checked.

5. Upload to Server

The Messenger mobile app depends on a separate backend addon called api-addon-messangr. The Flutter app alone is not enough.

Required backend path

/api-addon-messangr

What must be uploaded

  • Upload the Messenger addon files to your server.
  • Make sure the addon routes, modules, admin pages, and docs exist on the server.
  • Make sure the addon is reachable from your production website domain.

Important after upload

After uploading the Messenger addon files, run the Messenger update script so the app settings and related backend definitions are registered correctly.

https://your-domain.com/api-addon-messangr/update.php

Or from the server terminal if CLI access is available:

php api-addon-messangr/update.php

Minimum server checks

  1. Open /api-addon-messangr/update.php once after upload.
  2. Confirm your API credentials exist in /admincp/apis.
  3. Open the Messenger admin dashboard in /api-addon-messangr/admin.
  4. Check that GET /api-addon-messangr/app/settings returns valid data.
  5. Check that GET /api-addon-messangr/ping responds correctly if available on your server.
If the Messenger addon is missing or not updated, login, conversations, stories, app settings, or call bootstrap flows may fail even if the Flutter app builds correctly.

6. Create Android Keystore

Before publishing the Android version, create your own release keystore. This is required for signed release builds and future updates on Google Play.

keytool -genkeypair -v \
  -keystore ~/your-messenger-release-key.jks \
  -keyalg RSA \
  -keysize 2048 \
  -validity 10000 \
  -alias your_key_alias

Then store the values in android/key.properties:

storePassword=YOUR_STORE_PASSWORD
keyPassword=YOUR_KEY_PASSWORD
keyAlias=your_key_alias
storeFile=/full/path/to/your-messenger-release-key.jks
Keep the keystore file and passwords in a safe place. You need them for future app updates.

7. Change Package Name / Bundle ID

The current project still uses default test identifiers. Replace them with your final package name, for example com.yourcompany.messenger.

Platform File Current Value
Android android/app/build.gradle.kts com.example.messenger.messenger
iOS ios/Runner.xcodeproj/project.pbxproj com.example.messenger.messenger
  1. Update applicationId and namespace for Android.
  2. Update PRODUCT_BUNDLE_IDENTIFIER for iOS.
  3. Review any deep-link scheme or bundle-specific integration that depends on your brand.

8. Change App Name

The current visible app name is Sngine Massnger. Replace it with your final Messenger brand name.

  • android/app/src/main/AndroidManifest.xml for android:label.
  • ios/Runner/Info.plist for CFBundleDisplayName and CFBundleName.
Old name: Sngine Massnger
New name: Your Messenger Name

9. Change App Icon and Splash

The project already includes separate branding files for the launcher icon and splash visuals. Replace them with your own final branding before release.

App icon files

Purpose File Notes
Main icon source assets/branding/app-icon-source.png Used by flutter_launcher_icons for Android and iOS.
Launcher icon config pubspec.yaml Contains the flutter_launcher_icons settings.
flutter pub get
dart run flutter_launcher_icons
After running the command, the launcher icons are regenerated automatically for Android and iOS.

Splash files

Platform File Usage
Flutter in-app splash assets/branding/splash-source.png Displayed while the Messenger app bootstraps.
Optional branding asset assets/branding/splash-foreground.png Keep it updated if your design flow uses this foreground asset elsewhere.
Android native splash background android/app/src/main/res/drawable*/background.png Used by launch_background.xml as the full-screen launch background.
iOS splash background ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png Used by the iOS launch storyboard.
iOS splash image ios/Runner/Assets.xcassets/LaunchImage.imageset/ Replace LaunchImage.png, @2x, and @3x.
  1. Replace assets/branding/splash-source.png with your final splash design.
  2. Replace Android launch background images in the drawable* folders.
  3. Replace iOS launch assets in LaunchBackground.imageset and LaunchImage.imageset.
  4. Run a clean build after changing branding assets.
flutter clean
flutter pub get
flutter run

10. License Activation

Before using the Messenger package in production, generate and download your Messenger license file from the official license portal.

License portal

https://license.fluttercrafters.com/

Required information

  • Your website domain.
  • Your purchase code.
  1. Open the license portal.
  2. Enter your website domain.
  3. Enter your purchase code.
  4. Generate and download the Messenger license file.
  5. Replace the local license file in this path:
messenger/lib/core/license/licenses.dart
The downloaded license file must be copied to messenger/lib/core/license/licenses.dart before building the app.

API credentials from your script admin panel

You also need the API credentials from your website admin panel because the Messenger app stores them at bootstrap time from the generated license.

https://your-domain.com/admincp/apis
  • API Key
  • API Secret
The domain used in the license portal must match the same website domain used by your installed script.

12. Agora Setup

Messenger includes Agora-based calling support for audio and video calls. Before enabling call features in production, make sure your Agora configuration is valid.

Important Messenger runtime settings

Key Why it matters
agoraEnabled Controls whether Agora-based calls are allowed.
calls_enabled Controls whether call buttons should appear at all.
audio_calls_enabled Controls whether audio call UI is available.
video_calls_enabled Controls whether video call UI is available.
agoraAppId Main Agora project App ID used by Messenger calls.
agoraToken Optional static token if your setup needs it.
agoraChannelPrefix Used to generate Messenger call channel names.
agoraHeartbeatEnabled Controls call heartbeat updates during an active call.
agoraHeartbeatIntervalSeconds Controls the heartbeat frequency.

Where to configure them

  • Messenger admin dashboard: /api-addon-messangr/admin/app-settings
  • Public runtime endpoint: /api-addon-messangr/app/settings
  • Fallback defaults in Flutter: lib/settings.dart
If call buttons are enabled but agoraAppId is empty or invalid, call startup will fail even if the rest of the app works.

13. Dashboard Settings

After installation, Messenger-related settings can be changed from the Messenger admin dashboard, such as runtime flags, call settings, Timeline linking values, app colors, chat polling, and incoming call behavior.

Main admin URL

https://your-domain.com/api-addon-messangr/admin

Main app settings URL

https://your-domain.com/api-addon-messangr/admin/app-settings
Available options may vary depending on the installed Messenger addon version on your server.

14. App Settings

Messenger loads its public runtime settings from the backend during app bootstrap. This means some important values should be configured from the server dashboard, not only from local Flutter files.

Public settings endpoint

GET https://your-domain.com/api-addon-messangr/app/settings

What the app reads at startup

  • debug
  • chatPollingEnabled
  • chatPollingIntervalSeconds
  • incomingCallPollingEnabled
  • incomingCallPollingIntervalSeconds
  • agoraHeartbeatEnabled
  • agoraHeartbeatIntervalSeconds
  • calls_enabled
  • audio_calls_enabled
  • video_calls_enabled
  • agoraEnabled
  • agoraAppId
  • agoraToken
  • agoraChannelPrefix
  • timelineUrlScheme
  • timelineDeepLinkHost
  • timelinePackage
  • timelineAndroidStoreUrl
  • timelineIosStoreUrl
  • Messenger app colors
If Messenger starts but behavior, colors, Timeline opening, polling, or calls do not match your expectation, check /api-addon-messangr/app/settings first.

15. Screenshots Guide

This section is prepared for real setup screenshots. Save your screenshots inside docs/screenshots/ using the exact filenames below and they will appear here automatically.

Messenger Admin Dashboard Messenger admin dashboard screenshot

Recommended: show the main api-addon-messangr/admin dashboard.

Messenger App Settings Messenger app settings screenshot

Recommended: show timelineUrlScheme, timelineDeepLinkHost, and polling settings.

Agora App ID Agora app id screenshot

Recommended: show the Agora project page where the App ID is copied.

Xcode Signing and Capabilities Xcode signing and capabilities screenshot

Recommended: show the selected Apple team and final Messenger bundle identifier.

Android Package Name Android package name screenshot

Recommended: show applicationId and namespace in build.gradle.kts.

License Portal License portal screenshot

Recommended: show the Messenger license generation form on the official portal.

Use real screenshots from your current dashboards and tools. Do not use outdated screenshots from another project or product version.

16. Release Checklist

  1. Upload the api-addon-messangr backend files and run update.php.
  2. Generate and replace lib/core/license/licenses.dart with the customer Messenger license file.
  3. Confirm API Key and API Secret are active in /admincp/apis.
  4. Change Android applicationId and iOS bundle ID.
  5. Change the app name in Android and iOS.
  6. Replace launcher icons and splash assets.
  7. Review Messenger app settings in /api-addon-messangr/admin/app-settings.
  8. Confirm Timeline integration values are correct.
  9. Review Agora settings and test both audio and video calls on real devices.
  10. Create the Android release keystore and configure android/key.properties.
  11. In Xcode, set your Apple team in Signing & Capabilities.
  12. Update the app version in pubspec.yaml before final store builds.
  13. Run flutter clean, flutter pub get, then test Android and iOS separately.
version: 1.0.0+1

17. Troubleshooting

Messenger opens but login or chat fails

  • Check that api-addon-messangr was uploaded correctly.
  • Run /api-addon-messangr/update.php again after upload.
  • Confirm the generated license file matches the same website domain.
  • Confirm the API credentials in /admincp/apis are correct.

Messenger opens but Timeline integration fails

  • Check timelineUrlScheme in Messenger app settings.
  • Check timelineDeepLinkHost in Messenger app settings.
  • Check timelinePackage for Play Store fallback on Android.

Calls do not start

  • Check that agoraEnabled is true.
  • Check that calls_enabled, audio_calls_enabled, or video_calls_enabled are enabled as needed.
  • Check that agoraAppId is valid.
  • Check microphone and camera permissions on the device.

The app fails immediately on startup

  • Check that lib/core/license/licenses.dart was replaced with a valid generated Messenger license file.
  • Run flutter clean and flutter pub get after configuration changes.
  • Check the terminal, Android Studio, or Xcode logs for the first thrown error.

18. Important Notes

  • Use a unique package name before publishing to Google Play or the App Store.
  • Upload and update the Messenger backend addon before testing the mobile app.
  • Some Messenger runtime values are loaded from /api-addon-messangr/app/settings, not only from local Flutter code.
  • Complete license activation and confirm your API credentials before production use.
  • Review Agora settings before enabling calls for customers.
  • Run flutter clean and flutter pub get after major configuration changes.
  • Always test Android and iOS builds separately before final release.

19. Official Sources

Version numbers in this document were verified from official sources on April 25, 2026.