Roku's Static Analysis Tool is used by programmers to analyze a channel's BrightScript source code and detect common issues before submitting the channel for certification.
Three types of messages are provided which vary in severity: "Errors", "Warnings", and "Info".
The presence Warning or Info messages does not mean that a channel cannot be published, however Error messages will usually block publication.
After a set of Static Analysis test results have been generated, it is necessary to re-upload a Pkg file in order to re-run the tests.
Common Static Analysis Messages
The "Billing usage was specified on the Monetization channel properties page but..."
error message occurs when you have one of the in-channel purchase options selected on the Roku Monetization page for the channel
but do not have Billing code included in your Pkg file.
You can eliminate this error by either of the following methods:
Unselect the monetization option on Roku's Monetization page for the channel.
Setting the Theme IncludeBilling parameter to "True".
This will include Billing code in your Pkg file.
After changing this parameter you'll need to generate a new Pkg file and re-upload it to your Roku Developer account.
The "Billing usage was found in BrightScript code but was not specified on the Monetization channel properties page" message can usually be ignored,
it is harmless.
This message is caused by Instant TV Channel billing software that allows the channel to be monetized using one-time purchases and subscriptions.
If you are not using Roku Billing or In-Channel Purchasing in your Roku channel,
this message can be eliminated by setting the Theme IncludeBilling parameter to "False" and then rebuilding and re-uploading the Pkg file.
The "Channel name in manifest {channel name} is different from channel-associated data in Channel Store DB" message can be ignored,
it is harmless.
It indicates that the title parameter on the channel's Theme page does not exactly match the channel name entered in the channel's Roku Developer Account.
The "Channel version in manifest is different from channel-associated data in Channel Store DB" message can be ignored,
it is harmless.
To eliminate this message the major_version and minor_version on the channel's Theme page
must match the "Channel Version" number shown on the Package Upload page in the channel's Roku Developer Account.
The major_version is the number to the left of the decimal point and the minor_version is the number to the right of the decimal point in the "Channel Version" number.
The "Channel version wasn't updated" message indicates that the "Channel Version" number shown on the Package Upload page
in the channel's Roku Developer account has not been incremented since the last time that a package file was uploaded.
This may or may not be a problem.
The "Channel Version" number is used by Roku devices which already have a channel installed in order to determine whether or not a new version of the channel is available.
Usually the "Channel Version" number shown in your Roku Developer Account is incremented after each upload of a new package file.
Incrementing the "Channel Version" number is not necessary (or possible) for the initial version of a public/certified channel.
The "Channels must add a product group in the Developer Dashboard to enable and facilitate upgrades and downgrades..." message
indicates that you have the Theme IncludeBilling parameter set to "True" and intend to use In-Channel Purchasing (a.k.a. "Roku Pay")
to make one-time sales or to sell subscriptions within your channel.
If you are not using In-Channel Purchasing, set the Theme IncludeBilling parameter set to "False", then generate and upload a new Pkg file.
After re-running Static Analysis the error message should be gone.
If you do intend to use In-Channel Purchasing, you'll need to update to Instant TV Channel version #495 or higher,
then make following additions in your Roku Developer Account:
Create one additional Product ID for the channel at a different price than your actual Product ID.
Create a Product Group and add both the actual and the new product IDs to the Product Group.
Re-upload the Pkg file after creating the new Product Group, before running Static Analysis again.
The additional Product ID is never used, it is only needed to create the Product Group.
The "Content metadata field AudioLanguageSelected has been deprecated" message can be ignored, it is harmless.
This message is caused by code in Instant TV Channel that converts subtitle information from older content items into Roku's latest format.
These messages can be eliminated by updating the channel to #490 or higher.
The "Developer id of submitted package does not match developer id of previously submitted package" message indicates that the newly submitted Pkg file
was not built from the original channel, and was not built from a clone of the original channel.
This message may also occur when upgrading from Direct Publisher to SDK.
If this message is a warning it can be ignored.
If this message is an error it will block publication of the channel,
and it may be necessary to send an email to partnersuccess@roku.com to ask for an exception because the original Developer ID was lost.
The "Following BrightScript libraries are required by the channel" message is informational only and can be ignored.
The "GetVersion() API has been deprecated" warning can be ignored, it is harmless.
If it occurs you'll see several of these messages at the same time.
These messages can be eliminated by updating the channel to #504 or higher.
The "...image used for mm_icon_focus_hd/sd attribute has invalid resolution" indicates that the width and height of
one of the mm_icon images uploaded on the Instant TV Channel Theme page do not match Roku's specifications of 290x218 or 246x140.
This is a warning and can be ignored.
This message can be eliminated by uploading the correct size image, as specified in the error message, and then rebuilding the Pkg file.
The "...image used for splash_screen_fhd/hd/sd attribute has invalid resolution" message indicates that the width and height of
one of the splash images uploaded on the Instant TV Channel Theme page do not match Roku's specifications of 1920x1080, 1280x720, or 720x480.
This is a warning and can be ignored.
The Theme splash_color parameter sets the background color for any undersized splash image.
This message can be eliminated by uploading the correct size image, as specified in the error message, and then rebuilding the Pkg file.
The "please use rsg_version=1.2" message is usually harmless,
but it can be eliminated by setting the rsg_version parameter to "1.2".
The rsg_version parameter is located near the end of the channel's Theme page.
Your channel must be at Update #459 or higher in order to change rsg_version.
Roku states that setting rsg_version to "1.2" will allow a channel to start quicker and use less memory.
At some point in the future Roku may require that all channels have rsg_version set to "1.2" or higher.
The "RAF usage was found in BrightScript code but Ads revenue was not specified during channel publishing" message can usually be ignored, it is harmless.
RAF refers to "Roku Advertising Framework" and is required if your channel uses VAST video ads.
If you are not using any VAST ads in your Roku channel,
this message can be eliminated by setting the Theme IncludeRAF parameter to "False" and then rebuilding and re-uploading the Pkg file.
The "roDeviceInfo.GetConnectionInfo() API no longer returns the Roku device MAC address" error message seems to be a bug in Roku's Static Analysis system,
as it may occur even if the MAC address is not requested or used.
To eliminate this error you'll need to update the channel to #504 or higher, then generate a new Pkg file and re-upload it to your Roku Developer Account.
The "roInput events" message indicates that an Update needs to be applied to the channel.
This message should not be ignored.
The roInput feature is used by Roku's Deep Linking service.
The roInput feature is built into the Pkg file and there are no changes needed to activate it other than to update the channel and re-submit it to Roku.
The roInput feature can be included and the message can be eliminated by updating the channel to #465 or higher.
The "Starting after September 30, 2020, authenticated transactional channels..."
error message is displayed if your channel is not at Update #495 or higher and you have the Theme IncludeBilling parameter set to "True".
If you will be using In-Channel Purchasing (a.k.a. "Roku Pay") to make one-time sales or to sell subscriptions within your channel,
you'll need to update the channel to #495 or higher, then generate a new Pkg file and re-upload it to your Roku Developer Account.
If you are not using In-Channel Purchasing, set the Theme IncludeBilling parameter set to "False", then generate and upload a new Pkg file.
After re-running Static Analysis the error message should be gone.
The "Your channel appears to be using ECP or roAppManager commands" message can be ignored, it is harmless.
ECP refers to "External Control Protocol" and is used for slideshows,
audio-only streams, to launch other channels, or to use Programmable Button BACK or HOME functions.
This message can be eliminated by updating the channel to #490 or higher.
As of Update #495 the Theme option IncludeECP can be used to remove all ECP code from the Pkg file.
Any messages containing "Path: /components/Static_Analysis_Warnings_Are_Harmless_.brs" can be ignored,
they are harmless.
These messages are caused by code that exists in Instant TV Channel that is used to support older firmware versions on obsolete Roku devices.
These messages can be eliminated by updating the channel to #490 or higher.
The Roku Developer Forum is a useful resource for developers of SDK channels,
and is a great place to ask questions.
Want to know more about how to build an SDK Roku channel?
Check out this
Roku Custom SDK Walk-Through for all of the details.
Instant TV Channel
Instant TV Channel is a cloud-based tool for Roku developers and content providers that shortens development time and eases maintenance after deployment.