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 arm 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 Static Analysis, first upload a channel package. Refer to Update an Existing Channel for the steps to uploading a package.
- After uploading the package, the developer can see a new Static Analyze feature 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
If the developer thinks the process is taking longer, they can click on the Refresh button to check for analysis results.
- Typically, the analysis results look like the following
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.
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.