mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-05-17 18:38:46 -05:00
1419712a60
- Add Flutter mobile app with authentication, timer, projects, and time entries - Add Electron desktop app with system tray integration and offline support - Implement offline storage with sync queue for both platforms - Add comprehensive build scripts for cross-platform builds - Include documentation and README files for both apps - Add test suites for mobile and desktop applications
4.7 KiB
4.7 KiB
Build Scripts for TimeTracker Mobile and Desktop Apps
This directory contains build scripts for building the TimeTracker mobile (Flutter) and desktop (Electron) applications locally.
Quick Start
All Platforms (Linux/macOS)
# 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 macOS
Windows
REM 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-only
Individual Build Scripts
Mobile App (Flutter)
Linux/macOS:
# Build Android
./scripts/build-mobile.sh android
# Build iOS (macOS only)
./scripts/build-mobile.sh ios
# Build all
./scripts/build-mobile.sh all
Windows:
REM Build Android
scripts\build-mobile.bat android
REM Build all
scripts\build-mobile.bat all
Desktop App (Electron)
Linux/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 all
Windows:
REM Build Windows installer
scripts\build-desktop.bat win
REM Build all platforms
scripts\build-desktop.bat all
Prerequisites
Mobile App (Flutter)
- Flutter SDK 3.0.0 or higher
- Android SDK (for Android builds)
- Xcode (for iOS builds, macOS only)
- Command line tools:
flutter,dart
Desktop App (Electron)
- 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.)
Build Outputs
Mobile App
- 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)
Desktop App
- Windows:
desktop/dist/*.exe(NSIS installer) - macOS:
desktop/dist/*.dmg - Linux:
desktop/dist/*.AppImageanddesktop/dist/*.deb
Troubleshooting
Flutter Issues
- "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
Electron Issues
- "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
Platform-Specific Issues
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
Advanced Options
Build Flags
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-only
Windows:
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-only
CI/CD Integration
These 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
Notes
- 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)