Roku SDK Documentation : Static Analysis Tool

Table of contents


Overview

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

Developer Dashboard

The developer can access the Static Analysis Tool from the Developer Dashboard.

  1. 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.
  2. After uploading the package, the developer will see a "Static Analysis" option in the drop-down (see below).



  3. Below is the Static Analysis dashboard setup. Click on Analyze to begin the Static Analysis of your channel.



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

  5. 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 usage of the TimeGrid (EPG) component

    As this component is allowed on a case by case basis, we are checking for its usage in channels.
  • Check for breakpoints left in code

    Check for intentional stopping or pausing place in the code.
  • Check for potential PII queries

    Check for usage of terms like credit, card, age, gender, etc.
  • Extraneous file inclusion

    Channel scanned for files inadvertently packaged with ZIP files (such as the side loadable development app,) __MACOSX artifact folders, .pkg files, etc.
  • Deprecated manifest entries

    Channel scanned for usage of deprecated manifest flags as specified in the Roku Channel Manifest.

Attachments:

dropdown.PNG (image/png)
dashboard.png (image/png)
analyze.png (image/png)
Results.png (image/png)
dashboard (1).png (image/png)
Static Analysis Tool — Errors.png (image/png)