Skip to content
WolfWave

Build from Source

Build WolfWave from source on macOS. Xcode 16, Swift 5.9, macOS 26. Configure Twitch + Discord client IDs and run the open-source menu bar app locally in minutes.

Build from source

This guide is for developers who want to build WolfWave from source. If you just want to use WolfWave, see the Installation guide.

Prerequisites

  • macOS 26.0+ (Tahoe)
  • Apple Silicon (M1 or later)
  • Xcode 16.0+
  • Swift 5.9+
  • Command Line Tools: xcode-select --install

Clone the Repository

git clone https://github.com/MrDemonWolf/WolfWave.git
cd WolfWave

Configure API Keys

Copy the example configuration file:

cp apps/native/WolfWave/Config.xcconfig.example apps/native/WolfWave/Config.xcconfig

Open apps/native/WolfWave/Config.xcconfig and set your keys:

TWITCH_CLIENT_ID = your_twitch_client_id_here
DISCORD_CLIENT_ID = your_discord_client_id_here

# Optional. Fork/whitelabel branding overrides. Leave as-is for the upstream defaults.
DOCS_URL = https://mrdemonwolf.github.io/wolfwave
COMMUNITY_DISCORD_URL = https://mrdwolf.net/discord
COPYRIGHT_HOLDER = MrDemonWolf, Inc.

Get a Twitch Client ID at dev.twitch.tv/console/apps. Get a Discord Application ID at discord.com/developers/applications.

Config.xcconfig is gitignored. Each contributor uses their own.

Forking WolfWave? Override DOCS_URL, COMMUNITY_DISCORD_URL, and COPYRIGHT_HOLDER to point at your own site, community, and legal entity. Each falls back to the upstream MrDemonWolf default if left blank. To rename the app itself, edit CFBundleDisplayName in Info.plist (or set PRODUCT_NAME in an xcconfig overlay).

Open the Project

make open-xcode
# or
open apps/native/WolfWave.xcodeproj

Build and Run

Build and run from Xcode using ⌘R.

Production Build

For a release build with DMG output:

make prod-build

The DMG will be created at builds/WolfWave-{version}-arm64.dmg. If a Developer ID Application certificate is found in your Keychain, the app will be re-signed for distribution automatically.

To build and install directly to /Applications:

make prod-install

Notarization

After building the DMG, notarize it for Gatekeeper-trusted distribution:

APPLE_ID=you@example.com \
APPLE_TEAM_ID=YOUR_TEAM_ID \
APPLE_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx \
make notarize

Generate an app-specific password at appleid.apple.com under Sign-In and Security → App-Specific Passwords.

CI/CD

Pushing a version tag triggers the GitHub Actions release workflow, which creates a draft GitHub Release:

git tag v2.0.0
git push origin v2.0.0

After the workflow completes, build and notarize locally with make prod-build && make notarize, upload the DMG to the draft release, and publish it. Required secrets (TWITCH_CLIENT_ID, DISCORD_CLIENT_ID) must be configured in your repository's Actions secrets. See the Development Guide and PUBLISH.md for the full release checklist.

Next Steps


Support development

WolfWave is built and maintained by one person. If you find the project valuable, please consider sponsoring. It directly funds development time and Apple Developer Program fees.

Sponsor on GitHub →

On this page