mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-03-26 09:35:52 +00:00
- Remove all uses of deprecated highlight() method in CustomMenuWindow - Consistently use state property for NSStatusBarButton management - Update StatusBarMenuManager to reset button state when menu state is .none - Fix concurrency issues in CustomMenuWindow frame observer - Ensure button state is properly managed throughout menu lifecycle This fixes the issue where the button could display inconsistent visual states or get stuck due to conflicting approaches between highlight() and state. |
||
|---|---|---|
| .. | ||
| docs | ||
| scripts | ||
| VibeTunnel | ||
| VibeTunnel-Mac.xcodeproj | ||
| VibeTunnelTests | ||
| .gitignore | ||
| .swiftformat | ||
| .swiftlint.yml | ||
| CHANGELOG.md | ||
| Package.swift | ||
| README.md | ||
| VibeTunnel-Info.plist | ||
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 signingcreate-dmg.sh- Create a DMG for distributionrelease.sh- Full release processmonitor-ci.sh- Monitor CI build statussign-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.