Skip to content

Build from Source

  • macOS 14.0+ (Sonoma)
  • Xcode 16+ with macOS 14 SDK
  • Homebrew (for installing tools)
Terminal window
brew install xcodegen swiftlint
Terminal window
git clone https://github.com/64x-lunicorn/OpenWorktimeTracker.git
cd OpenWorktimeTracker

The Xcode project is generated from project.yml using XcodeGen:

Terminal window
xcodegen generate

This creates OpenWorktimeTracker.xcodeproj from the YAML specification.

Terminal window
open OpenWorktimeTracker.xcodeproj
Terminal window
make build
Command Description
make build Build release configuration
make test Run all unit tests
make lint Run SwiftLint
make generate Regenerate Xcode project
make clean Clean build artifacts
Terminal window
make test

The test suite includes:

  • BreakCalculatorTests – ArbZG break logic edge cases
  • WorkdayDetectorTests – New day detection scenarios
  • PersistenceManagerTests – JSON round-trip and file I/O
  • TimeEntryTests – Model encoding/decoding

The project is defined in project.yml:

  • Deployment target: macOS 14.0
  • Swift version: 5.9
  • Dependencies: Sparkle 2 (via SPM)
  • Info.plist: Custom at OpenWorktimeTracker/Resources/Info.plist
  • Entitlements: OpenWorktimeTracker/Resources/OpenWorktimeTracker.entitlements

For debugging, build in Debug configuration in Xcode. The app will:

  • Run from Xcode’s build directory (not Applications)
  • Not register as a Login Item (unless you check the box in Settings)
  • Store data in the same Application Support directory as the release build