AeThex-OS/LAUNCHER_BUILD.md

174 lines
3.9 KiB
Markdown

# AeThex Launcher Build Configuration
## Platform-Specific Build Instructions
### Prerequisites
**All Platforms:**
- Node.js 18+ (https://nodejs.org/)
- npm or yarn
- Rust toolchain (https://rustup.rs/)
**Windows:**
- Visual Studio Build Tools or Visual Studio with C++ workload
- WebView2 Runtime (usually pre-installed on Windows 11)
**macOS:**
- Xcode Command Line Tools: `xcode-select --install`
- macOS 10.15+ for building
**Linux (Ubuntu/Debian):**
```bash
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev
```
**Linux (Fedora/RHEL):**
```bash
sudo dnf install webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
libappindicator-gtk3-devel \
librsvg2-devel
```
**Linux (Arch):**
```bash
sudo pacman -Syu
sudo pacman -S webkit2gtk-4.1 \
base-devel \
curl \
wget \
file \
openssl \
appmenu-gtk-module \
gtk3 \
libappindicator-gtk3 \
librsvg
```
### Building
#### Quick Build (Current Platform)
```bash
# Unix/Linux/macOS
./build-launcher.sh
# Windows (PowerShell)
.\build-launcher.ps1
```
#### Manual Build Process
```bash
# Install dependencies
npm install
# Build web app
npm run build
# Build desktop app
npm run tauri:build
```
#### Development Mode
```bash
# Run in development mode with hot reload
npm run tauri:dev
```
### Build Outputs
**Windows:**
- `.msi` installer: `src-tauri/target/release/bundle/msi/`
- `.exe` executable: `src-tauri/target/release/aethex-os.exe`
**macOS:**
- `.dmg` installer: `src-tauri/target/release/bundle/dmg/`
- `.app` bundle: `src-tauri/target/release/bundle/macos/`
**Linux:**
- `.deb` package: `src-tauri/target/release/bundle/deb/`
- `.AppImage`: `src-tauri/target/release/bundle/appimage/`
- `.rpm` package: `src-tauri/target/release/bundle/rpm/`
### Cross-Platform Building
Tauri does not support true cross-compilation. To build for different platforms:
1. **Build on the target platform** (recommended)
2. Use GitHub Actions or CI/CD for automated multi-platform builds
3. Use platform-specific VMs or cloud services
### CI/CD Configuration
See `.github/workflows/build-launcher.yml` for automated builds using GitHub Actions.
### Code Signing
**Windows:**
```bash
# Sign the MSI installer
signtool sign /f certificate.pfx /p password /t http://timestamp.digicert.com src-tauri/target/release/bundle/msi/*.msi
```
**macOS:**
```bash
# Sign and notarize the app
codesign --deep --force --verify --verbose --sign "Developer ID Application: Your Name" --options runtime "src-tauri/target/release/bundle/macos/AeThex OS.app"
```
**Linux:**
No code signing required, but you may want to sign packages with GPG.
### Distribution
- **Windows**: Distribute `.msi` installer
- **macOS**: Distribute `.dmg` installer
- **Linux**: Distribute `.AppImage` for universal compatibility, or `.deb`/`.rpm` for specific distros
### Troubleshooting
**Build fails on Windows:**
- Ensure Visual Studio Build Tools are installed
- Try running from Visual Studio Developer Command Prompt
**Build fails on macOS:**
- Install Xcode Command Line Tools
- Accept Xcode license: `sudo xcodebuild -license accept`
**Build fails on Linux:**
- Install all required system libraries (see Prerequisites)
- Check that webkit2gtk-4.1 is available (not 4.0)
### Auto-Updates
The launcher includes auto-update functionality. Configure the update server in `src-tauri/tauri.conf.json`:
```json
{
"plugins": {
"updater": {
"active": true,
"endpoints": ["https://releases.aethex.com/{{target}}/{{arch}}/{{current_version}}"]
}
}
}
```
See Tauri updater documentation for more details: https://v2.tauri.app/plugin/updater/
### Resources
- Tauri Documentation: https://v2.tauri.app/
- Tauri Prerequisites: https://v2.tauri.app/start/prerequisites/
- Build Configuration: https://v2.tauri.app/reference/config/