Table of contents
The channel publishing flow includes a Static Analysis Tool used to analyze the channel's BrightScript source code and detect common issues without having to submit for certification. This arms developers with the information they need to optimize their channels and ensure the channel passes certification quickly. These common issues include but are not limited to simple channel runtime issues, such as crashes on launch, and media playback errors (automated testing).
The developer can access the Static Analysis Tool from the Developer Dashboard.
- To use the Static Analysis Tool, begin by uploading a channel package. Refer to Update an Existing Channel for the steps to uploading a package.
- After uploading the package, the developer will see a "Static Analysis" option in the drop-down (see below).
- Below is the Static Analysis dashboard setup. Click on Analyze to begin the Static Analysis of your channel.
- The following screen indicates that the analysis is underway.
Clicking the Refresh button will check whether the analysis results are ready yet and, if so, will render them.
- The analysis results are broken into three categories, broken up by severity. Errors will result in your channel failing certification. Warnings may result in your channel failing certification (now or in the future), or may negatively affect the performance of your channel. The Info section includes information that may be pertinent to your development, but which Roku can not be sure of from a simple Static Analysis scan.
Each of the three major error categories are further broken into sub-categories to better cluster your errors into digestible clusters.
Alternatively, the developer can wait for a notification email sent by the service to the email address associated with their developer account. This email contains a link to the results of the Static Analysis for the channel. The results are available for download as a plain text JSON file as well.
Static Analysis Test Details
Following are the tests that Static Analysis performs on the channel package. These may be expanded over time.
- Check for deprecated components
Check for the usage of legacy (SDK1) UI components (roGridScreen, etc.). For a complete list of flagged components, refer to Sunsetting the legacy Roku SDK visual screens.
Check for usage of the TimeGrid (EPG) componentAs this component is allowed on a case by case basis, we are checking for its usage in channels.
Check for breakpoints left in codeCheck for intentional stopping or pausing place in the code.
Check for potential PII queriesCheck for usage of terms like credit, card, age, gender, etc.
Extraneous file inclusionChannel scanned for files inadvertently packaged with ZIP files (such as the side loadable development app,) __MACOSX artifact folders, .pkg files, etc.
Deprecated manifest entriesChannel scanned for usage of deprecated manifest flags as specified in the Roku Channel Manifest.