-
Notifications
You must be signed in to change notification settings - Fork 15
Developer Guide Build
github-actions[bot] edited this page Jun 4, 2026
·
3 revisions
YourSSH targets macOS, Windows, and Linux via Flutter.
- Flutter 3.x — install via flutter.dev
- Run
flutter doctorand resolve any issues before building - Platform-specific tooling:
- macOS: Xcode 15+
- Windows: Visual Studio 2022 with "Desktop development with C++" workload
- Linux:
clang cmake ninja-build pkg-config libgtk-3-dev
# macOS
cd app && flutter run -d macos
# Windows
cd app && flutter run -d windows
# Linux
cd app && flutter run -d linux# macOS — outputs app/build/macos/Build/Products/Release/YourSSH.app
cd app && flutter build macos
# Windows — outputs app/build/windows/x64/runner/Release/
cd app && flutter build windows
# Linux — outputs app/build/linux/x64/release/bundle/
cd app && flutter build linux# Static analysis
cd app && flutter analyze
# All tests
cd app && flutter test
# Single test file
cd app && flutter test test/services/sync_service_test.dart
# Filter by test name pattern
cd app && flutter test --name "SyncService"app/pubspec.yaml uses dependency_overrides to pull the local forks of dartssh2, flutter_pty, and xterm plus all yourssh_* packages:
dependency_overrides:
dartssh2:
path: ../packages/dartssh2
flutter_pty:
path: ../packages/flutter_pty
xterm:
path: ../packages/xterm
yourssh_plugin_api:
path: ../packages/yourssh_plugin_api
# … etcIf you modify a package in packages/, the app picks up the change immediately — no publish step needed.
The core/ Rust library is not linked into the app at runtime. If you want to build it:
make setup # Install Rust targets + xcodegen
make core # Build universal .a + Swift bindings
make clean # Remove Rust artifactsGitHub Actions workflows live in .github/workflows/. The release.yml workflow builds for all three platforms and attaches artifacts to the GitHub Release on tag push.
- Architecture — understand the codebase before modifying
- Contributing — PR and release workflow