You’ve built the engines, the bridges, and the UIs. But a folder full of source code isn't a product. To get your games into the hands of users, you need to navigate the logistics of deployment. This means compiling for release, signing your code so the OS trusts it, and packaging it into a format that is easy to install.

Apple: Signing and Notarization

On macOS, "it works on my machine" isn't enough. To distribute an app outside the App Store, you must sign it with a Developer ID certificate and submit it to Apple for notarization. This is a security check that ensures your app isn't containing known malware. Without this, users will see a scary "App cannot be opened" warning.

// Notarizing via the command line
xcrun notarytool submit PositionGames.dmg --keychain-profile "AC_PASSWORD" --wait

Windows: MSIX and the Store

On Windows, the modern standard is the MSIX package. It handles installation, updates, and clean uninstallation. You can distribute these packages directly on your website or submit them to the Microsoft Store. Like Apple, Windows requires code signing (usually via an EV Certificate) to avoid the "Windows Protected Your PC" SmartScreen filter.

Shipping is a feature. A perfect app that no one can install is functionally identical to an app that doesn't exist.

Three ways to put it in users' hands

Once your app is signed and notarized, you have three honest distribution paths:

The certificates are not free. Apple's Developer Program is $99/year and gets you both notarization and App Store access. Windows code signing requires a publisher certificate from a CA — typically $200–$400/year for a standard cert, more for an EV cert that immediately satisfies SmartScreen. Microsoft Store registration is a one-time $19 (individuals) or $99 (companies). Budget for these before launch.

Auto-update is not optional

If you ship outside the App Store / Microsoft Store, you need an update mechanism. The easiest answers:

Without auto-update, every patch becomes a manual ask of every user — and most of them will simply never update. The first time you find a bug in a shipped build, you'll wish you'd wired this in earlier.

CI/CD with AI

Building and packaging manually is error-prone. We use Continuous Integration (CI) tools like GitHub Actions to automate the process. Every time you push code, a server in the cloud compiles the C++, runs the bridge tests, signs the binaries, and creates the installer. You can even use AI to write these complex YAML build scripts for you.

# GitHub Actions snippet to compile C++ on push
jobs:
  build:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build Engine DLL
        run: msbuild engine.sln /p:Configuration=Release

Try it yourself

What's next

You are now a full-stack native developer. You've seen the entire journey from a single transistor to a global distribution pipeline. Next week, we wrap up the year. We'll reflect on The AI Hero's Journey and why your deep understanding of the metal makes you uniquely qualified to lead in the age of AI.

Week 52 is The AI Hero’s Journey.

Quick check

1. To distribute a Mac app outside the App Store without scary warnings, you must…
  1. Compile with -O3
  2. Sign with a Developer ID certificate AND have Apple notarize the binary
  3. Run as root
Reveal Answer

Answer: B. Notarization is the security check that lets Gatekeeper trust your app. Without it, users see 'cannot be opened'.

2. What is MSIX on Windows?
  1. An antivirus
  2. A modern app package format that handles install, update, and clean uninstall
  3. A C# library
Reveal Answer

Answer: B. MSIX replaces the old MSI format. Cleaner sandboxing, automatic updates, and Microsoft Store compatibility.

3. What does the Sparkle framework provide for Mac apps?
  1. Code signing
  2. An auto-update framework — checks a feed URL, verifies signatures, prompts the user
  3. A debugger
Reveal Answer

Answer: B. Without Sparkle (or similar), every patch becomes a manual ask of every user — and most never update.