.pkg file is required for every Roku Channel Store submission. The signing key is tied to your device’s DevID — you generate it once per device using genkey.
Prerequisites
- Roku device in developer mode (see Sideloading)
make,zip,curl, andtelnetinstalled- A signing key loaded on the device (generated in step 2 below)
Steps
Confirm developer mode is active
The device must be in developer mode before you can generate a signing key or package the channel. If you have not done this yet, follow the Sideloading guide first.
Generate a signing key with genkey
Connect to the Roku’s BrightScript console via Telnet:At the console prompt, run:The device responds with output similar to:Save both values immediately. The
Password is your SIGN_PASSWORD. The DevID identifies the signing key tied to this device.Each call to
genkey creates a new key and invalidates the previous one. Any .pkg files signed with the old key cannot be re-signed; you would need to submit a new package. Generate the key once and keep the password safe.Increment build_version in the manifest
The Roku Channel Store rejects a package with the same Current manifest values:
build_version as a previously submitted one. Before packaging for submission, open manifest and increment the value:Increment
build_version for every Channel Store submission, even if major_version and minor_version are unchanged. Keep the value in APP_VERSION in the Makefile and APP_VERSION in source/AppConstants.brs aligned with the manifest.Run make pkg
Run the packaging target with all three required variables:The target:
- Builds
out/GlobalTV.zip - Sideloads the zip to the device
- Requests a signed package via
http://<ROKU_IP>/plugin_package - Downloads the
.pkgfrom the device
Verify the output file
On success, the signed package is saved to:The console output confirms the path:If the
.pkg is not produced, the Makefile prints diagnostic steps:Submit to the Roku Channel Store
Log in to the Roku Developer Portal and navigate to Manage Channels. Select your channel and upload
out/GlobalTV-1.0.6.pkg in the Package submission section.Run make check before submitting to catch any manifest or asset issues that would cause the submission to be rejected.Troubleshooting
ERROR: No se pudo obtener el .pkg
ERROR: No se pudo obtener el .pkg
- Confirm
SIGN_PASSWORDmatches the password printed bygenkey. - Confirm the device has a signing key (you ran
genkeyat least once on this device). - Open
http://<ROKU_IP>/plugin_packagein a browser while authenticated asrokudevto inspect the raw response.
Roku Channel Store rejects the package
Roku Channel Store rejects the package
- Ensure
build_versioninmanifestis higher than the last submitted value. - Run
make checkand resolve all failures before re-packaging.
telnet: command not found (macOS)
telnet: command not found (macOS)
Install telnet via Homebrew:Alternatively, use
nc (netcat):