App Signing for Production
Sign your app with @overwolf/ow-electron-builder so the gaming packages (GEP, Overlay, Recorder) load at runtime once the app is distributed to users.
For running gaming packages locally before signing, see Dev Mode.
| Property | Value |
|---|---|
| Surface | Overwolf Electron (ow-electron) |
| Minimum version | ow-electron-builder@26.9.0 and ow-electron@39.8.10 |
| Platform | Windows |
| When to use | Building a production app for distribution |
| Your certificate | A code-signing certificate for your exe (your own certificate, not Overwolf's). See code signing. |
Code-signing your exe with your own certificate is now required (previously optional). Overwolf signs the gaming package integrity and you sign the exe. Without both, the gaming packages (GEP, Overlay, Recorder) will not load at runtime.
Signing credentials and variables
| Variable | Purpose | Source |
|---|---|---|
OW_CLI_EMAIL | Signing server authentication | Your Overwolf Console account email |
OW_CLI_API_KEY | Signing server authentication | Overwolf Console, under Profile > API Keys |
OW_BUILD_KEY | Signing server authentication for the build step | Overwolf Console, under Release management > App Keys |
Prerequisites
Before you sign, you need:
- A registered app in the Overwolf Console with an assigned App UID.
- A valid
OW_CLI_EMAILandOW_CLI_API_KEYfor an account that owns the app. - An
OW_BUILD_KEYfrom the Overwolf Console, for the build step. - A code-signing certificate for your
exe(your own certificate, not Overwolf's). See code signing. @overwolf/ow-electron-builderinstalled.
Step 1: Set signing credentials
Provide the required signing credentials as environment variables:
export OW_CLI_EMAIL=your-email@example.com
export OW_CLI_API_KEY=your-api-key
export OW_BUILD_KEY=your-build-key
Using a .env file
You can also store the credentials in a .env file in your project root instead of exporting them in your shell:
OW_CLI_EMAIL="your-email@example.com"
OW_CLI_API_KEY="your-api-key"
OW_BUILD_KEY="your-build-key"
For the builder to read the .env file, wire dotenv into your build script. The exact wiring depends on how your build script is set up:
- dotenv-cli
- Node
Install dotenv-cli and prefix your build script with dotenv:
{
"scripts": {
"build:ow-electron": "dotenv --override --no-expand -- ow-electron-builder --publish=never"
}
}
--no-expand stops dotenv from expanding a $ in your OW_CLI_API_KEY as a variable reference. --override makes the .env values take precedence over any matching variables already set in your shell.
If your build script runs through node (for example, a custom Electron builder script), install dotenv and preload it:
{
"scripts": {
"build:ow-electron": "node -r dotenv/config ./node_modules/.bin/ow-electron-builder --publish=never"
}
}
If your OW_CLI_API_KEY value contains a $ character, dotenv/config does not expand it by default, so no extra flag is needed. Confirm this against your own dotenv version before relying on it.
Step 2: Run the builder
Build and sign your app with a single command:
npx @overwolf/ow-electron-builder
Related pages
- Dev Mode, to run gaming packages locally before signing.
- Develop your app (Phase 2) and Release your app (Phase 3), the onboarding journey steps that point here.
- Overwolf Electron Technical Overview, the code signing section.
- Do I need my own code certificate? in the Overwolf Electron FAQ.