Build from Source
Prerequisites
Section titled “Prerequisites”- macOS 14.0+ (Sonoma)
- Xcode 16+ with macOS 14 SDK
- Homebrew (for installing tools)
Install Build Tools
Section titled “Install Build Tools”brew install xcodegen swiftlintClone and Build
Section titled “Clone and Build”git clone https://github.com/64x-lunicorn/OpenWorktimeTracker.gitcd OpenWorktimeTrackerGenerate Xcode Project
Section titled “Generate Xcode Project”The Xcode project is generated from project.yml using XcodeGen:
xcodegen generateThis creates OpenWorktimeTracker.xcodeproj from the YAML specification.
Open in Xcode
Section titled “Open in Xcode”open OpenWorktimeTracker.xcodeprojBuild via Command Line
Section titled “Build via Command Line”make buildMake Targets
Section titled “Make Targets”| 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 |
Running Tests
Section titled “Running Tests”make testThe 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
Project Configuration
Section titled “Project Configuration”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
Debugging
Section titled “Debugging”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