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, Messenger backend addon upload, purchase code activation, package name changes, app branding, license activation, deep links, Timeline integration, Firebase push notifications, Agora calls, and Messenger app settings.

The instructions below are based on the current project files and Messenger addon structure. If the source code package includes updated api-addon-messangr files, upload those server files before testing the mobile app.

Messenger App Official Package Backend Addon Included Purchase Code Protected Firebase FCM Agora Calls Docs v1.2

1. Requirements

The tool version table below was originally verified from official sources on April 25, 2026. Check the official sources again before preparing a final production build:

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 and Install the Messenger Backend Addon

The Messenger mobile app depends on a separate backend addon called api-addon-messangr. The Flutter app alone is not enough. Upload the backend addon included with the source code to your Sngine website first, then install and activate it with the purchase code from Fluttercrafters Store.

Required backend path

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

Correct upload location

your-sngine-root/
  bootstrap.php
  includes/
  content/
  api-addon-messangr/
    install.php
    update.php
    admin/
    app/
    assets/stickers/
    seeders/stickers.php

Upload with File Manager, FTP, or SFTP

  1. Extract the Messenger source package on your computer.
  2. Find the backend folder named api-addon-messangr.
  3. Open your hosting File Manager, FTP client, or SFTP client.
  4. Go to the Sngine installation root. This is the same folder that contains bootstrap.php, includes, and content.
  5. Upload the full api-addon-messangr folder into that root folder.
  6. If you upload a ZIP file, extract it in the Sngine root and confirm the final path is not nested.
Correct:
your-sngine-root/api-addon-messangr/install.php

Wrong:
your-sngine-root/api-addon-messangr/api-addon-messangr/install.php

Wrong upload locations

  • content/themes/api-addon-messangr
  • includes/api-addon-messangr
  • api-addon-messangr/api-addon-messangr

How to get the Messenger purchase code

  1. Open store.fluttercrafters.com.
  2. Sign in with the account used to buy the Messenger product.
  3. Open My Purchases.
  4. Copy the License Code for the Messenger package.
  5. Use that code inside the Messenger backend installer.

Install the backend addon

  1. Open the installer in your browser:
    https://your-domain.com/api-addon-messangr/install.php
  2. Review the environment checks. PHP 8.0+, curl, json, sticker assets, and seeder files should be present.
  3. Enter the Messenger purchase code from Fluttercrafters Store.
  4. Run the installer. It verifies the code, activates it for the current domain, creates storage/tables, and seeds Messenger assets.
  5. Open the Messenger admin dashboard:
    https://your-domain.com/api-addon-messangr/admin/index.php

When updating included server files

If a new Messenger source package includes an updated api-addon-messangr folder, upload the new files to your Sngine root and overwrite the old backend addon files. After upload, open the update link in your browser:

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

Minimum server checks

  1. Open /api-addon-messangr/update.php once after uploading updated files.
  2. Confirm your API credentials exist in /admincp/apis.
  3. Open the Messenger admin dashboard in /api-addon-messangr/admin.
  4. Open app settings from /api-addon-messangr/admin/app-settings/index.php and confirm the license status is active.
  5. Manage chat backgrounds from /api-addon-messangr/admin/backgrounds/index.php.
  6. Manage sticker packs from /api-addon-messangr/admin/stickers/index.php.
  7. Check that GET /api-addon-messangr/app/settings returns valid data.
  8. Check that GET /api-addon-messangr/ping responds correctly if available on your server.
If the Messenger backend addon is missing or not updated, login, conversations, stories, stickers, 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. Firebase Cloud Messaging Setup

Sngine Messenger uses Firebase Cloud Messaging (FCM) for native incoming-call and group-chat push notifications. Firebase Authentication and Cloud Firestore are not required for this integration. Use one Firebase project for the Android app, the iOS app, and the server service account described below.

Finalize the Android package name and iOS bundle identifier before registering either app in Firebase. The identifiers entered in Firebase must match the compiled applications exactly.

12.1 Create the Firebase project

  1. Open Firebase Console and sign in with the Google account that will own the production project.
  2. Select Create a project, enter a recognizable project name, and continue.
  3. Google Analytics is optional for Messenger push notifications. Enable it only if the customer needs Analytics.
  4. Accept the applicable terms, create the project, and wait until the project overview opens.
Create a Firebase project Firebase Console create project screen

Enter the production project name and continue. Analytics is not required for FCM.

Messenger FCM server settings Sngine Messenger FCM integrations settings

The final server-side values are uploaded from Messenger Admin after Firebase is ready.

12.2 Register the Android app

  1. From Project overview, select Add app, then choose the Android icon.
  2. Enter the exact final Android package name from android/app/build.gradle.kts under applicationId. The package included in the source project is com.snginemessanger.app; if you changed it for the customer, enter the new value instead.
  3. Enter an optional nickname. SHA-1 and SHA-256 are optional for FCM-only use, but may be required if you later enable other Firebase products.
  4. Select Register app, then download google-services.json.
  5. Replace the project file at android/app/google-services.json. Keep the filename exact; do not leave names such as google-services (2).json.
Android app configuration Firebase Android app configuration and google-services json download

Download the Android configuration only after confirming that its package name matches applicationId.

The Messenger source already includes the Google Services Gradle plugin and Firebase Flutter packages. Do not add a duplicate Gradle plugin. For this project, the native configuration file is required and flutterfire configure is not required unless you deliberately migrate the app to generated firebase_options.dart configuration.

12.3 Register the iOS app

  1. In the same Firebase project, select Add app, then choose the Apple icon.
  2. Enter the exact, case-sensitive bundle identifier from Xcode under Runner > Signing & Capabilities. The source project default is com.snginemessanger.app; use the customer's final value if it was changed.
  3. Select Register app, then download GoogleService-Info.plist.
  4. Replace ios/Runner/GoogleService-Info.plist. Keep the filename exact.
  5. Open ios/Runner.xcworkspace in Xcode. Confirm the file is visible under Runner and belongs to the Runner target.
  6. Under Signing & Capabilities, enable Push Notifications and Background Modes > Remote notifications.
Apple app configuration Firebase Apple app configuration and GoogleService Info plist download

The Firebase bundle ID and Xcode Runner bundle ID must match exactly, including letter case.

12.4 Connect APNs for iPhone and iPad

  1. Open Apple Developer Certificates, Identifiers & Profiles > Keys.
  2. Create an APNs-enabled key and securely download the .p8 file. Apple allows this file to be downloaded once.
  3. In Firebase Console, open Project settings > Cloud Messaging.
  4. Under the Apple app configuration, upload the APNs authentication key and enter its Key ID and the Apple Team ID.
The Firebase service account used by the Messenger server does not replace the Apple APNs key. iOS delivery needs both the Firebase server configuration and a valid APNs configuration in Firebase.

12.5 Create the Firebase server service account

  1. In Firebase Console, open Project settings > Service accounts.
  2. Choose Firebase Admin SDK, then select Generate new private key and confirm.
  3. Store the downloaded JSON in a secure temporary location. Do not rename or edit its JSON fields.
  4. Confirm that the Firebase Cloud Messaging API (HTTP v1) is enabled for this Google Cloud project.
Never add the service-account JSON to the Flutter app, source-control repository, APK/IPA, or a public web directory. It contains a private server key. If it is exposed, revoke that key in Google Cloud and generate a replacement immediately.

12.6 Link Firebase to the Messenger backend

  1. Open https://your-domain.com/api-addon-messangr/admin/app-settings.
  2. Open the Integrations section.
  3. Enable FCM Calls Enabled for incoming-call notifications.
  4. Enable FCM Groups Chat Enabled for group-chat notifications.
  5. Enter the exact FCM Project ID shown in Firebase Project settings.
  6. Upload the service-account JSON under FCM Service Account File, then save the settings.
Messenger Admin > Integrations FCM Calls, group chat, project ID and service account controls in Messenger Admin

Enable the required notification types, enter the Firebase project ID, upload the private JSON file, and save.

12.7 Rebuild and verify notifications

flutter clean
flutter pub get
flutter run
  1. Remove the previous app build from the test device, then install the rebuilt application.
  2. Sign in and allow notification permission when prompted.
  3. Use real Android and iOS devices to test an incoming call and a new group message while the app is in the foreground, background, and fully closed.
  4. If available in Messenger Admin, use the FCM test tool with a current device token and confirm the HTTP v1 response is successful.
Problem What to check
Android has no FCM token Verify google-services.json, its filename and path, and that package_name matches applicationId.
iOS token exists but notifications do not arrive Verify the APNs key in Firebase, bundle ID, Push Notifications capability, remote-notification background mode, and device permission.
SENDER_ID_MISMATCH The mobile configuration file and the uploaded service-account JSON came from different Firebase projects.
401, invalid_grant, or authentication failure Upload a valid service-account JSON, confirm HTTP v1 is enabled, and check the server date and time.

Official references: Android setup, Apple setup, FCM for Apple clients, Firebase Admin SDK, and FCM server environment.

13. 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.

14. 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.

15. 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.

16. 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.

17. Release Checklist

  1. Upload the api-addon-messangr backend files to the Sngine root.
  2. Open /api-addon-messangr/install.php and activate the backend addon with the Messenger purchase code.
  3. After uploading updated backend files, open /api-addon-messangr/update.php in the browser.
  4. Generate and replace lib/core/license/licenses.dart with the customer Messenger license file.
  5. Confirm API Key and API Secret are active in /admincp/apis.
  6. Change Android applicationId and iOS bundle ID.
  7. Register the final Android and iOS identifiers in the same Firebase project and replace both Firebase configuration files.
  8. Configure the APNs authentication key in Firebase for iOS notifications.
  9. Upload the Firebase service-account JSON in Messenger Admin and test FCM calls and group-chat notifications.
  10. Change the app name in Android and iOS.
  11. Replace launcher icons and splash assets.
  12. Review Messenger app settings in /api-addon-messangr/admin/app-settings.
  13. Confirm Timeline integration values are correct.
  14. Review Agora settings and test both audio and video calls on real devices.
  15. Create the Android release keystore and configure android/key.properties.
  16. In Xcode, set your Apple team in Signing & Capabilities.
  17. Update the app version in pubspec.yaml before final store builds.
  18. Run flutter clean, flutter pub get, then test Android and iOS separately.
version: 1.0.0+1

18. Troubleshooting

Messenger opens but login or chat fails

  • Check that api-addon-messangr was uploaded correctly.
  • Open /api-addon-messangr/update.php again in the browser after uploading updated backend files.
  • 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.

Push notifications do not arrive

  • Confirm the Android package name or iOS bundle ID matches its Firebase app registration exactly.
  • Confirm google-services.json and GoogleService-Info.plist came from the same Firebase project as the server service account.
  • Check the FCM Calls and FCM Groups Chat switches in Messenger Admin.
  • For iOS, also check the APNs key, Xcode Push Notifications capability, remote-notification background mode, and notification permission.

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.

19. Important Notes

  • Use a unique package name before publishing to Google Play or the App Store.
  • Upload, install, 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.
  • Keep Firebase mobile configuration files and the server service account from the same Firebase project.
  • Never commit or distribute the Firebase service-account JSON with the mobile application.
  • Run flutter clean and flutter pub get after major configuration changes.
  • Always test Android and iOS builds separately before final release.

20. Official Sources

Tool version numbers were verified from official sources on April 25, 2026. The Firebase setup flow and screenshots were reviewed on August 13, 2026.