servicebusexplorer

Building and Distributing the Desktop App

This guide covers building the Azure Service Bus Explorer desktop application for distribution.

Prerequisites

All Platforms

Platform-Specific

macOS:

xcode-select --install

Windows:

Linux (Ubuntu/Debian):

sudo apt-get update
sudo apt-get install -y \
  libwebkit2gtk-4.1-dev \
  libappindicator3-dev \
  librsvg2-dev \
  patchelf

Local Builds

Quick Build (Current Platform)

npm run tauri:build

This builds for your current platform and outputs the installer in:

Cross-Platform Builds

You can build for other platforms from your current machine:

Windows (64-bit):

npm run tauri:build -- --target x86_64-pc-windows-msvc

macOS Intel:

npm run tauri:build -- --target x86_64-apple-darwin

macOS Apple Silicon:

npm run tauri:build -- --target aarch64-apple-darwin

Linux (64-bit):

npm run tauri:build -- --target x86_64-unknown-linux-gnu

Note: Cross-platform builds require additional setup:

Automated Builds with GitHub Actions

The repository includes GitHub Actions workflows for automated cross-platform builds.

Option 1: Full Release Workflow

File: .github/workflows/build-desktop.yml

Features:

Usage:

  1. Create and push a version tag:
    git tag v1.0.0
    git push origin v1.0.0
    
  2. The workflow will:
    • Build for Windows, macOS (Intel & ARM), and Linux
    • Create a draft GitHub Release
    • Attach all platform installers
    • Generate release notes
  3. Review and publish the release on GitHub

Option 2: Simple Build Workflow

File: .github/workflows/build-desktop-simple.yml

Features:

Usage:

  1. Go to GitHub Actions → Build Desktop App (Simple)
  2. Click “Run workflow”
  3. Select branch and run
  4. Download artifacts from the workflow run

Build Outputs

Windows

macOS

Note: For distribution outside the App Store, you’ll need:

Linux

Code Signing (macOS)

For production macOS builds, configure code signing in GitHub Actions:

  1. Export your certificate:
    # Export from Keychain Access
    # File → Export Items → Save as .p12
    
  2. Add GitHub Secrets:
    • Go to Repository → Settings → Secrets and variables → Actions
    • Add:
      • APPLE_CERTIFICATE: Base64 encoded .p12 file
        base64 -i certificate.p12 | pbcopy
        
      • APPLE_CERTIFICATE_PASSWORD: Your certificate password
      • APPLE_SIGNING_IDENTITY: Your signing identity
        security find-identity -v -p codesigning
        
      • APPLE_TEAM_ID: Your Apple Team ID (from Apple Developer portal)
  3. Update workflow to use these secrets (see Tauri documentation)

Troubleshooting

Build Fails on macOS

Error: “No such module ‘AppKit’”

Error: Code signing issues

Build Fails on Windows

Error: “link.exe not found”

Error: “rustup not found”

Build Fails on Linux

Error: “Package ‘webkit2gtk-4.0’ not found”

Error: “Permission denied”

General Issues

Build is slow:

Out of memory:

Build artifacts not found:

Distribution

GitHub Releases

  1. Use the automated workflow to create releases
  2. Or manually:
    • Build locally for each platform
    • Create a new release on GitHub
    • Upload installers as release assets

Other Distribution Methods

Version Management

Update version in:

  1. package.json - npm version
  2. src-tauri/Cargo.toml - Rust package version
  3. src-tauri/tauri.conf.json - App version

Use semantic versioning (e.g., 1.0.0, 1.0.1, 1.1.0)

Resources