This directory contains build scripts for building the TimeTracker mobile (Flutter) and desktop (Electron) applications locally.
# Make scripts executable (first time only)
chmod +x scripts/*.sh
# Build everything
./scripts/build-all.sh
# Build mobile only
./scripts/build-all.sh --mobile-only
# Build desktop only
./scripts/build-all.sh --desktop-only
# Build specific platform
./scripts/build-all.sh android # Mobile Android
./scripts/build-all.sh ios # Mobile iOS (macOS only)
./scripts/build-all.sh linux # Desktop Linux
./scripts/build-all.sh macos # Desktop macOSREM Build everything
scripts\build-all.bat
REM Build mobile only
scripts\build-all.bat --mobile-only
REM Build desktop only
scripts\build-all.bat --desktop-only
REM Build Android only
scripts\build-all.bat --android-only
REM Build Windows only
scripts\build-all.bat --windows-onlyLinux/macOS:
# Build Android
./scripts/build-mobile.sh android
# Build iOS (macOS only)
./scripts/build-mobile.sh ios
# Build all
./scripts/build-mobile.sh allWindows:
REM Build Android
scripts\build-mobile.bat android
REM Build all
scripts\build-mobile.bat allLinux/macOS:
# Build for current platform
./scripts/build-desktop.sh current
# Build Windows (cross-platform, requires Wine on Linux)
./scripts/build-desktop.sh win
# Build macOS (macOS only)
./scripts/build-desktop.sh mac
# Build Linux (Linux only)
./scripts/build-desktop.sh linux
# Build all platforms
./scripts/build-desktop.sh allWindows:
REM Build Windows installer
scripts\build-desktop.bat win
REM Build all platforms
scripts\build-desktop.bat all- Flutter SDK 3.0.0 or higher
- Android SDK (for Android builds)
- Xcode (for iOS builds, macOS only)
- Command line tools:
flutter,dart
- Node.js 18+ and npm
- Platform-specific build tools:
- Windows: Visual Studio Build Tools or Visual Studio
- macOS: Xcode Command Line Tools
- Linux: Standard build tools (make, gcc, etc.)
- Android APK:
mobile/build/app/outputs/flutter-apk/app-release.apk - Android AAB:
mobile/build/app/outputs/bundle/release/app-release.aab - iOS:
mobile/build/ios/iphoneos/Runner.app(requires Xcode for distribution)
- Windows:
desktop/dist/*.exe(NSIS installer) - macOS:
desktop/dist/*.dmg - Linux:
desktop/dist/*.AppImageanddesktop/dist/*.deb
- "Flutter not found": Add Flutter to your PATH or install Flutter SDK
- "Android SDK not found": Install Android Studio and configure Android SDK
- Build fails: Run
flutter doctorto check configuration
- "Node.js not found": Install Node.js 18+ from nodejs.org
- Build fails on Windows: Install Visual Studio Build Tools
- Icons missing: Create placeholder icons in
desktop/assets/or update build config
Linux:
- May need to install:
libnss3-dev,libgconf-2-4,libxss1
macOS:
- iOS builds require Xcode and signing certificates
- May need to accept Xcode license:
sudo xcodebuild -license accept
Windows:
- May need Visual Studio Build Tools for native modules
- Some builds may require administrator privileges
The main build script supports various flags:
Linux/macOS:
# Build only mobile
./scripts/build-all.sh --mobile-only
# Build only desktop
./scripts/build-all.sh --desktop-only
# Build only Android
./scripts/build-all.sh --android-only
# Build only iOS (macOS)
./scripts/build-all.sh --ios-only
# Build only Linux desktop
./scripts/build-all.sh --linux-only
# Build only macOS desktop
./scripts/build-all.sh --macos-onlyWindows:
REM Similar flags available
scripts\build-all.bat --mobile-only
scripts\build-all.bat --desktop-only
scripts\build-all.bat --android-only
scripts\build-all.bat --windows-onlyThese scripts are designed to work in CI/CD environments:
# Example GitHub Actions
- name: Build Mobile
run: ./scripts/build-mobile.sh android
- name: Build Desktop
run: ./scripts/build-desktop.sh current- Build scripts will create necessary directories automatically
- First build may take longer due to dependency downloads
- Release builds require code signing for distribution (not handled by scripts)
- Some builds may require manual configuration (e.g., iOS code signing)