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 timeline App Documentation

This document explains the basic setup process for the Sngine Flutter app before delivery or website distribution. It covers Flutter installation, development tools, first run, package name changes, app name changes, app icon and splash replacement, Google Login setup, api-addons upload, the new live streaming integration, and dashboard configuration.

The instructions are based on the current project files, so buyers can follow them directly without digging through the codebase. When the source code includes updated server files, upload those files to Sngine before testing the app.

Flutter App Official Package api-addons Required Live Streaming Ready Docs v1.1

1. Requirements

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

Tool Stable Version Notes
Flutter 3.41.5 Reflected by the official Flutter documentation at the time of writing.
Xcode 26.4.1 Shown on Apple Releases on April 16, 2026.
Android Studio Panda 4 | 2025.3.4 Shown as the latest stable release on April 21, 2026.
Always use stable releases, not beta or canary versions, when preparing the project for production or customer delivery.

License Notice

This product is sold only through our official website: store.fluttercrafters.com

Do not use, distribute, or rely on nulled, leaked, cracked, or unauthorized copies. For security, updates, and valid support, use only an officially purchased version from our website.

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.

Useful commands

flutter --version
flutter doctor
flutter doctor -v
Continue only after flutter doctor shows a clean setup for the platforms you want to build.

3. Xcode and Android Studio

Xcode Install Xcode from Apple, open it once, accept the license agreement, and let it install the required additional components.
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
Android Studio Install Android Studio, then open SDK Manager and make sure Android SDK, Build Tools, Platform Tools, Emulator, and at least one device image are installed.

Important

  • Xcode is required if you want to build the iOS version on macOS.
  • Android Studio is required for Android SDK, emulator, and platform tools.
  • After installation, run flutter doctor again and confirm everything is ready.

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 you have already changed the package name, app name, Firebase files, and signing settings.

5. Upload api-addons to Server

The Timeline app depends on server-side files provided with the source code. These files are usually inside a folder named api-addons. Uploading only the Flutter project is not enough.

  • Find the api-addons folder included with the purchased source code.
  • Upload the full folder to the root of your Sngine website.
  • The final path must be https://your-domain.com/api-addons/.
  • Make sure api-addons/update.php is accessible before testing the mobile app.

Correct upload location

your-sngine-root/
  bootstrap.php
  includes/
  content/
  api-addons/
    update.php
    admin/
    app/
    ...

Wrong upload locations

  • content/themes/api-addons
  • includes/api-addons
  • api-addons/api-addons

Important after upload

After uploading the addon files, open the update link in your browser so the app settings and related backend definitions are registered correctly on your server.

https://your-domain.com/api-addons/update.php

Minimum server checks

  1. Open /api-addons/update.php once after upload.
  2. Confirm your API credentials exist in /admincp/apis.
  3. Open the app settings dashboard in /api-addons/admin.
  4. Check that GET /api-addons/app/settings returns valid data.
The Flutter app alone is not enough. The related api-addons server files must be uploaded and installed on the Sngine server first.

6. Update the Files Included with the Source Code

When you receive an updated Timeline source package, check whether it includes updated server files. If the package contains api-addons, upload that folder to your Sngine root again and overwrite the old addon files.

  1. Download the latest source package from Sngine Pro Timeline.
  2. Extract the downloaded package on your computer.
  3. Open the extracted source and look for api-addons or any server-side files included with the package.
  4. Back up the existing api-addons folder from your Sngine server.
  5. Upload the new api-addons folder to the Sngine root and overwrite old files.
  6. Run https://your-domain.com/api-addons/update.php once after upload.
  7. Open https://your-domain.com/api-addons/admin and confirm the settings are still correct.
  8. Run the app again and test login, home feed, settings, notifications, and live streaming if enabled.
Do not update only the Flutter code when the source package includes server files. App features may fail if the mobile code is newer than the installed api-addons files.

7. New Live Streaming Setup

The Timeline app can work with the new Sngine Live Pro system, but live streaming is powered by a separate live server and the Sngine Live Addon. The Timeline app is the mobile interface; it is not the live media server.

Required product Install and configure Sngine Live Pro - Advanced Live Streaming System.
Sngine addon Upload fluttercrafters-livestream to the Sngine root and run its install.php wizard.
Live server URL During the Live Addon installation, enter the customer's live server domain, for example https://live.example.com.
Timeline api-addons Upload the api-addons files included with the Timeline source code and run api-addons/update.php.

Recommended setup order

  1. Install the live server by following the Sngine Live Pro server docs.
  2. Upload and install the Sngine Live Addon by following the Sngine Live Addon guide.
  3. Upload or update the Timeline api-addons folder from the source code package.
  4. Run https://your-domain.com/api-addons/update.php.
  5. Open https://your-domain.com/api-addons/admin and review the app settings.
  6. Open the Timeline app and test create live, watch live, comments, reactions, gifts, PK, and replay flow.

Important domains

Domain Example Purpose
Sngine website https://social.example.com Main website, Timeline API, login, posts, users, and api-addons.
Live server https://live.example.com Realtime live server, WebRTC, RTMP, Socket.IO, recordings, and live dashboard.
If the live button appears in the app but streaming does not start, check the Sngine Live Addon installer, the live server URL, and the uploaded api-addons files before changing Flutter code.

8. Create Android Keystore

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

Create a keystore

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

Recommended next step

After creating the keystore, store its values in your Android signing configuration, usually through android/key.properties and your Gradle release signing setup.

storePassword=YOUR_STORE_PASSWORD
keyPassword=YOUR_KEY_PASSWORD
keyAlias=your_key_alias
storeFile=/full/path/to/your-app-release-key.jks
Keep the keystore file and passwords in a safe place. If you lose them, updating the same app on Google Play can become difficult or impossible.

9. Get SHA Fingerprints for Google Login

Google Sign-In for Android often requires your app SHA certificate fingerprints, especially SHA-1 and sometimes SHA-256, inside Firebase or Google Cloud settings.

Get SHA from your release keystore

keytool -list -v \
  -alias your_key_alias \
  -keystore ~/your-app-release-key.jks

Get SHA from the default debug keystore

keytool -list -v \
  -alias androiddebugkey \
  -keystore ~/.android/debug.keystore \
  -storepass android \
  -keypass android

Copy the SHA-1 and SHA-256 values and add them to your Android app inside Firebase before downloading the final google-services.json file.

If Google Login does not work on Android, the first thing to check is whether the correct package name and SHA fingerprints were added to your Firebase project.

10. Change Package Name / Bundle ID

The current project still uses default test identifiers. Before publishing the app, replace them with your final package name, for example com.yourcompany.yourapp.

Main files to update

Platform File Current Value
Android android/app/build.gradle.kts com.example.sngineapp
iOS ios/Runner.xcodeproj/project.pbxproj com.example.sngineapp
Android Firebase android/app/google-services.json Must be replaced with a file that matches your final package name
  1. Update applicationId and namespace for Android.
  2. Update PRODUCT_BUNDLE_IDENTIFIER for iOS.
  3. Create matching Firebase apps for Android and iOS.
  4. Replace the Firebase configuration files.
  5. Update any related URL schemes or deep links if needed.

11. Change App Name

The current visible app name is Sngine timeline, and some internal branding still uses Sngine.

Main files to update

  • lib/settings.dart for the default internal app name.
  • android/app/src/main/AndroidManifest.xml for android:label.
  • ios/Runner/Info.plist for CFBundleDisplayName and CFBundleName.
Old name: Sngine timeline
New name: Your App Name

12. Change App Icon and Splash Screen

The project already includes separate branding files for the launcher icon and splash screen. Replace those files with your own final branding before building the release version.

App icon files

Purpose File Notes
Main icon source assets/branding/app_icon.png Used by flutter_launcher_icons for Android and iOS.
Launcher icon config pubspec.yaml Contains the flutter_launcher_icons settings and adaptive Android background color.

How to replace the app icon

  1. Replace assets/branding/app_icon.png with your square icon image.
  2. If needed, change adaptive_icon_background in pubspec.yaml.
  3. Run the icon generator command from the project root.
flutter pub get
dart run flutter_launcher_icons
After running the command, the generated launcher icons are updated automatically for Android and iOS.

Splash screen files

Platform File Usage
Flutter in-app splash assets/branding/splash_light.png Displayed by the splash widget in lib/main.dart.
Optional dark splash asset assets/branding/splash_dark.png Keep it updated if you also use dark-mode branding in future changes.
Android native splash image android/app/src/main/res/drawable-*/splash.png Loaded by launch_background.xml. Replace all density versions such as mdpi, hdpi, xhdpi, xxhdpi, and xxxhdpi.
Android native splash background android/app/src/main/res/drawable*/background.png Full-screen background image behind the centered splash logo, including the drawable-v21 and dark-mode versions if you use them.
iOS splash logo images ios/Runner/Assets.xcassets/LaunchImage.imageset/ Replace LaunchImage.png, @2x, @3x and dark variants.
iOS splash background ios/Runner/Assets.xcassets/LaunchBackground.imageset/ Replace background.png and darkbackground.png if needed.

How to replace the splash screen

  1. Replace assets/branding/splash_light.png with your final fullscreen splash design.
  2. Replace all Android native splash assets in the matching drawable-* folders, not only one file.
  3. Replace the iOS launch assets inside LaunchImage.imageset and LaunchBackground.imageset.
  4. If you need a different background color in Flutter, update the color inside lib/main.dart.
  5. Run a clean build after changing branding assets.
flutter clean
flutter pub get
flutter run
Do not change only the Flutter splash image and leave the native Android/iOS launch assets unchanged, otherwise users may see different branding during app startup.

13. Google Login

Google Sign-In is already included in the current project, but it must be configured correctly before release.

What already exists in the project

  • google_sign_in is already included in pubspec.yaml.
  • Google settings exist in lib/settings.dart.
  • Android Firebase config exists in android/app/google-services.json.
  • iOS Google client setup exists in ios/Runner/Info.plist.

What these files do

File Platform Purpose Where it must go
google-services.json Android Contains your Firebase Android app identifiers, project settings, API keys, and Google services configuration. android/app/google-services.json
GoogleService-Info.plist iOS Contains your Firebase iOS app identifiers, project settings, reversed client ID, and Google services configuration. ios/Runner/GoogleService-Info.plist

Where to download them

  1. Open the Firebase Console: https://console.firebase.google.com/
  2. Add an Android app using the final package name from your Flutter project.
  3. Download the Android config file google-services.json.
  4. Add an iOS app using the final bundle ID from your Flutter project.
  5. Download the iOS config file GoogleService-Info.plist.

Official Google / Firebase links

Required setup steps

  1. Create or use your Firebase project.
  2. Add an Android app using your final package name.
  3. Add an iOS app using your final bundle ID.
  4. Replace google-services.json in android/app/.
  5. Copy GoogleService-Info.plist to ios/Runner/ and add it to the iOS Runner target in Xcode.
  6. Update googleIosClientId and googleAndroidClientId in your app settings dashboard.
  7. Update the iOS URL scheme in Info.plist if your Google iOS client changes.

Android placement

The Android file must be placed directly inside the app module, not in the root project folder. The correct path is:

sngine-app/android/app/google-services.json

If this file belongs to a different package name than your current applicationId, Google login and Firebase services will fail on Android.

iOS placement

The iOS file must be copied into the Runner app folder and included in the Xcode project so it is bundled with the app at build time.

sngine-app/ios/Runner/GoogleService-Info.plist
  1. Copy GoogleService-Info.plist into ios/Runner/.
  2. Open ios/Runner.xcworkspace in Xcode.
  3. Right click Runner in the file navigator, then choose Add Files to "Runner".
  4. Select GoogleService-Info.plist.
  5. Make sure Runner target is checked before confirming.

Google client IDs used by the app

This project does not rely only on the Firebase files. The Flutter login flow also reads Google client IDs from the public app settings returned by the backend.

  • googleIosClientId for iOS Google Sign-In initialization.
  • googleAndroidClientId for Android server client configuration.
  • GIDClientID in ios/Runner/Info.plist must match the iOS client.
  • The reversed iOS client ID must be present inside CFBundleURLSchemes in Info.plist.
Copying GoogleService-Info.plist into the folder alone is not always enough. In iOS, it should also be added to the Runner target inside Xcode.

Quick example paths

Android:
android/app/google-services.json

iOS:
ios/Runner/GoogleService-Info.plist
If you change the package name or bundle ID, you must regenerate your Google and Firebase setup files.

14. License Activation

Before using the app in production, generate and download your license 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 app license file.
  5. Replace the local license file in this path:
sngine-app/lib/core/license/licenses.dart
The downloaded license file must be copied to sngine-app/lib/core/license/licenses.dart before building the app.

API credentials from your script admin panel

You will also need the API credentials from your own website admin panel:

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

15. Dashboard Settings

After installation, some app-related settings can be changed from the admin dashboard, such as general app options, visible interface items, branding-related options, and other basic settings.

Example URL

https://your-domain.com/api-addons/admin
Available options may vary depending on the installed version on your server.

16. App Settings and Integrations

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

Main public settings endpoint

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

Main admin endpoints

https://your-domain.com/api-addons/admin
https://your-domain.com/api-addons/admin/app/settings

Important values to configure in app settings

Key Why it matters
appName Used by the app UI and should match your final branding.
googleIosClientId Required by iOS Google Sign-In inside Flutter.
googleAndroidClientId Required by Android Google Sign-In server client configuration.
onesignalEnabled Controls whether OneSignal is initialized when the app starts.
onesignalAppId / onesignalTimelineAppId Required if you want push notifications to work.
agoraAppId Legacy Agora value. For the new Sngine Live Pro flow, install the Live Addon and use the live server settings described above.
api-addons server files Must be uploaded from the source package so the Timeline app can read the latest backend settings and live-related endpoints.
messengerUrlScheme Used when opening the separate Messenger app from the timeline app.
messengerAndroidPackageId Used for Play Store fallback links to Messenger.
messengerDomain Used for deep links and store fallback behavior.

Optional integrations

  • OneSignal: optional. If unused, keep onesignalEnabled=false.
  • New Sngine Live Pro streaming: requires the live server, Sngine Live Addon, and updated Timeline api-addons files.
  • Legacy Agora live streaming: optional. If unused, keep agoraAppId empty.
  • Apple Sign In: the button exists in UI, but the API flow is not wired yet in the current app build.
If the app starts but branding, Google Sign-In, push notifications, or live streaming behave differently from your expectation, check the public app settings and installed server files before editing Flutter code.

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

Firebase Project Overview Firebase project overview screenshot

Recommended: show the main Firebase project dashboard before adding Android and iOS apps.

Firebase Android App Setup Firebase Android app setup screenshot

Recommended: show the Android package name field and the download button for google-services.json.

Firebase iOS App Setup Firebase iOS app setup screenshot

Recommended: show the bundle ID field and the download button for GoogleService-Info.plist.

Firebase SHA Fingerprints Firebase SHA fingerprints screenshot

Recommended: show where SHA-1 and SHA-256 are added in Firebase Android app settings.

Xcode GoogleService-Info.plist Xcode GoogleService Info plist screenshot

Recommended: show Add Files to "Runner" and confirm the Runner target is checked.

Xcode Signing and Capabilities Xcode signing and capabilities screenshot

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

App Settings Dashboard App settings dashboard screenshot

Recommended: show googleIosClientId, googleAndroidClientId, onesignalEnabled, and agoraAppId.

OneSignal App Settings OneSignal app id screenshot

Recommended: show where the OneSignal App ID is copied from the OneSignal dashboard.

Agora Project Key Agora app id screenshot

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

Google API Credentials Google OAuth client screenshot

Optional: show the Google OAuth client page if you want to explain where the Google client IDs come from.

Use real screenshots from your current dashboards and tools. Do not use outdated images from another project, otherwise buyers may follow the wrong fields.

18. Release Checklist

  1. Upload the latest api-addons folder from the source package and run api-addons/update.php.
  2. If using the new live streaming flow, install Sngine Live Pro and the Sngine Live Addon first.
  3. Confirm the Live Addon was installed with the correct live server URL.
  4. Generate and replace lib/core/license/licenses.dart with the customer license file.
  5. Confirm API Key and API Secret are active in /admincp/apis.
  6. Change Android applicationId and iOS bundle ID.
  7. Replace google-services.json and GoogleService-Info.plist.
  8. Update Google client IDs in app settings and iOS Info.plist.
  9. Change app name, launcher icon, and splash assets.
  10. Create the Android release keystore and configure android/key.properties.
  11. In Xcode, set your Apple team in Signing & Capabilities and verify the bundle identifier.
  12. Update the app version in pubspec.yaml before the final store build.
  13. Run flutter clean, flutter pub get, then test Android and iOS separately.
version: 1.0.0+1
If every item above is completed, the buyer should be able to run, brand, configure, and prepare the app for store submission without digging through the source code.

19. Troubleshooting

Google Sign-In fails on Android

  • Check that google-services.json matches the final Android package name.
  • Check that the correct SHA-1 and SHA-256 were added in Firebase.
  • Check that googleAndroidClientId is correct in app settings.

Google Sign-In fails on iOS

  • Check that GoogleService-Info.plist was added to the Runner target in Xcode.
  • Check that GIDClientID and the reversed URL scheme in Info.plist match your current iOS client.
  • Check that the iOS bundle ID matches the Firebase iOS app exactly.

App opens but some settings look wrong

  • Open /api-addons/admin and review the app settings values.
  • Check that GET /api-addons/app/settings returns the expected public settings.
  • Check that the license file belongs to the same final website domain.

New live streaming does not start

  • Confirm Sngine Live Pro is installed and the live server domain is online.
  • Open /fluttercrafters-livestream/install.php as an admin and verify the saved live server URL.
  • Upload the latest Timeline api-addons folder from the source package.
  • Run /api-addons/update.php again after uploading the files.
  • Test the web live flow in Sngine before testing the same flow from the Timeline app.

Push notifications do not work

  • Make sure onesignalEnabled is enabled in app settings.
  • Make sure a valid OneSignal App ID is configured.
  • Make sure the device granted notification permission.

The app fails immediately on startup

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

20. Important Notes

  • Use a unique package name before uploading to Google Play or the App Store.
  • Replace all demo Firebase files with your own production files.
  • Update launcher icons and native splash assets for both Android and iOS before release.
  • Run api-addons/update.php after uploading or updating the backend addon files.
  • When the source package includes updated server files, upload those included files before rebuilding the mobile app.
  • The new live streaming flow requires Sngine Live Pro, the Sngine Live Addon, and the Timeline api-addons update.
  • Some runtime values are loaded from /api-addons/app/settings, not only from local Flutter code.
  • Complete license activation and confirm your API credentials before production use.
  • Some app settings can be managed later from the admin dashboard after installation.
  • Run flutter clean and flutter pub get after major configuration changes.
  • Always test Android and iOS builds separately before final release.

21. Official Sources

Tool version numbers in this document were verified from official sources on April 24, 2026. Timeline-specific setup notes were updated on June 4, 2026.