vibetunnel/mac
Peter Steinberger 982c1ff927 Improve release scripts based on beta 9 lessons learned
- Add state tracking and resume capability to release process
- Create release-state.sh for tracking 9 major release steps
- Add --resume and --status flags to release.sh
- Fix private key format handling for sign_update tool
- Create clean key file (sparkle_ed_private_key) automatically
- Handle missing custom Node.js builds gracefully
- Add DerivedData app location fallback
- Create comprehensive release-checklist.sh script
- Update release documentation with critical learnings
- Enhance Stats.store documentation with setup instructions
- Add troubleshooting for 'Application not found' error
- Document fallback options for direct GitHub URLs
- Update all scripts to handle clean key file format

These improvements make the release process more reliable and
resilient to interruptions, with better error handling throughout.
2025-07-11 11:29:49 +02:00
..
docs Improve release scripts based on beta 9 lessons learned 2025-07-11 11:29:49 +02:00
node_modules Disable create session modal animation in session detail view 2025-07-08 00:43:51 +01:00
scripts Improve release scripts based on beta 9 lessons learned 2025-07-11 11:29:49 +02:00
VibeTunnel Add crash detection to VibeTunnel server monitoring (#308) 2025-07-11 08:22:19 +02:00
VibeTunnel-Mac.xcodeproj Improve Cloudflare integration implementation (#306) 2025-07-11 07:43:53 +02:00
VibeTunnelTests Fix bugs in repository discovery feature (#282) 2025-07-11 07:52:21 +02:00
.gitignore Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
.swiftformat Move files to apple subdir 2025-06-22 14:35:42 +02:00
.swiftlint.yml Move files to apple subdir 2025-06-22 14:35:42 +02:00
bun.lock Disable create session modal animation in session detail view 2025-07-08 00:43:51 +01:00
CHANGELOG.md Add release process note to CLAUDE.md and prepare for beta 9 release 2025-07-11 10:33:53 +02:00
CLAUDE.md Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
package-lock.json Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
package.json Disable create session modal animation in session detail view 2025-07-08 00:43:51 +01:00
Package.swift Integrate screencap functionality for remote screen sharing (#209) 2025-07-06 03:31:34 +01:00
README.md refactor: major project restructuring - move macOS app to mac/ directory 2025-06-20 13:20:01 +02:00
VibeTunnel-Info.plist refactor: major project restructuring - move macOS app to mac/ directory 2025-06-20 13:20:01 +02:00

VibeTunnel macOS App

This directory contains the macOS version of VibeTunnel.

Quick Start

Building

# Using Xcode
xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel build

# Using build script
./scripts/build.sh

Running Tests

xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel test

Creating Release

./scripts/build.sh --configuration Release --sign
./scripts/create-dmg.sh build/Build/Products/Release/VibeTunnel.app

Project Structure

mac/
├── VibeTunnel/           # Source code
│   ├── Core/            # Core services and models
│   ├── Presentation/    # Views and UI components
│   └── Utilities/       # Helper utilities
├── VibeTunnelTests/     # Unit tests
├── scripts/             # Build and release scripts
├── docs/                # macOS-specific documentation
└── private/             # Signing keys (not in git)

Scripts

  • build.sh - Build the app with optional signing
  • create-dmg.sh - Create a DMG for distribution
  • release.sh - Full release process
  • monitor-ci.sh - Monitor CI build status
  • sign-and-notarize.sh - Code signing and notarization

Documentation

See docs/ for macOS-specific documentation:

  • Code signing setup
  • Release process
  • Sparkle update framework
  • Development signing

CI/CD

The app is built automatically on GitHub Actions:

  • On every push to main
  • On pull requests
  • For releases (tagged with v*)

See .github/workflows/swift.yml for the build configuration.