Skip to main content
The manifest file is a plain-text key-value file at the root of the project. Roku reads it at install and launch time to determine the channel identity, icons, splash screen, supported resolutions, and build flags. Every field shown here is required for Channel Store submission.

Complete manifest

manifest
title=GlobalTV
major_version=1
minor_version=0
build_version=7

mm_icon_focus_hd=pkg:/images/logo-hd.png
mm_icon_focus_fhd=pkg:/images/logo-fhd.png

splash_screen_fhd=pkg:/images/splash_fhd.png
splash_screen_hd=pkg:/images/splash_hd.png
splash_screen_sd=pkg:/images/splash_sd.png
splash_color=#1a1a2e
splash_min_time=1500

ui_resolutions=fhd,hd
rsg_version=1.3

supports_input_launch=1
splash_rsg_optimization=1

bs_const=IS_DEV_BUILD=false

Identity & versioning

FieldValueDescription
titleGlobalTVDisplay name shown in the Roku Channel Store and home screen.
major_version1Major version number. Part of the full version string 1.0.7.
minor_version0Minor version number.
build_version7Build number. Incremented on every Channel Store submission.
The full channel version is composed as major_version.minor_version.build_version, which gives 1.0.7 for the current manifest.
build_version must be incremented before each Channel Store submission. Roku rejects packages with a build version that is less than or equal to the previously submitted version.

Keeping APP_VERSION in sync

AppConstants.brs defines APP_VERSION independently from the manifest:
source/AppConstants.brs
APP_VERSION : "1.0.7",
This string is used at runtime (for example, sent in HTTP headers and ad handshake payloads) and must always match the major_version.minor_version.build_version in the manifest. Update both files together on every release.
There is no automatic enforcement that APP_VERSION and the manifest version stay in sync — they are separate files. The Makefile also carries its own APP_VERSION = 1.0.6 variable used only for naming build artifacts. Keeping all three aligned is a manual step.

Icons

FieldValueDescription
mm_icon_focus_hdpkg:/images/logo-hd.pngChannel icon at HD resolution (336×210 px). Shown in the home screen grid.
mm_icon_focus_fhdpkg:/images/logo-fhd.pngChannel icon at FHD resolution (540×405 px). Shown on 1080p displays.
Both icons are required for Channel Store submission. Roku scales down the FHD icon for HD displays when both are provided. Images must be PNG files referenced using the pkg:/ URI scheme, which maps to the root of the installed channel package.

Splash screen

FieldValueDescription
splash_screen_fhdpkg:/images/splash_fhd.pngSplash image for FHD (1920×1080 px).
splash_screen_hdpkg:/images/splash_hd.pngSplash image for HD (1280×720 px).
splash_screen_sdpkg:/images/splash_sd.pngSplash image for SD (720×480 px).
splash_color#1a1a2eBackground fill color displayed before the image loads.
splash_min_time1500Minimum time in milliseconds the splash screen is shown.
splash_rsg_optimization1Enables RSG optimized splash loading, reducing time to first frame.
The splash_color value #1a1a2e matches COLOR_BG_CARD (0x1A1A2EFF) defined in AppConstants.brs, giving a seamless transition between the splash and the first rendered UI frame. splash_min_time=1500 matches SPLASH_MS : 1500 in AppConstants.brs, so the in-app splash delay (if any) is consistent with the OS-level minimum.

Resolution & RSG

FieldValueDescription
ui_resolutionsfhd,hdComma-separated list of UI resolutions the channel supports.
rsg_version1.3SceneGraph API version. 1.3 is the minimum required by Roku OS 11+.
ui_resolutions=fhd,hd tells Roku the channel handles both 1920×1080 and 1280×720 layouts. Roku selects the appropriate resolution based on the connected display. The design coordinate system used throughout the codebase is 1920×1080 and is scaled down at runtime for 720p devices via GTV_GetDesignSize().
FieldValueDescription
supports_input_launch=11Declares that the channel handles roInput events for deep linking.
Setting supports_input_launch=1 is required for the channel to receive roInput events while running. The main entry point in source/main.brs listens for roInputEvent messages and routes them through inputDeepLink. This field is validated by make check and is a hard requirement for Roku certification checklist item 8.1.

Build flags

FieldValueDescription
bs_constIS_DEV_BUILD=falseCompile-time boolean constant. Set to true during local development to enable verbose logging.
bs_const defines compile-time constants evaluated by the BrightScript preprocessor. When IS_DEV_BUILD=false, any code guarded by #if IS_DEV_BUILD is stripped from the compiled output and never executes on the device.
GTV_Log() in source/utils/Logger.brs is only active when IS_DEV_BUILD=true. GTV_Warn() and GTV_Error() print unconditionally regardless of this flag. To enable verbose debug output during development, change the manifest to bs_const=IS_DEV_BUILD=true before sideloading — and revert it before submitting to the Channel Store.