# Standalone Builds (Linux, macOS, Windows) Diese Anleitung erstellt eigenständige Anwendungen mit **PyInstaller** auf dem jeweiligen Zielbetriebssystem. ## Wichtig - Builds müssen **nativ pro OS** erstellt werden (kein Cross-Compile mit diesen Skripten). - Verwenden Sie eine aktive und funktionierende `.venv` im Projektordner. - Die GUI wird aus `gui_wxpython.py` gebaut. --- ## Release auf einen Blick ### Linux ```bash ./build/build_linux.sh ./build/package_linux.sh ``` ### macOS ```bash ./build/build_macos.sh ./build/package_macos.sh ``` ### Windows ```cmd build\build_windows.cmd build\package_windows.cmd ``` --- ## Empfohlene Release-Reihenfolge 1. Version erhöhen (z. B. `version.txt` und Changelog) 2. Pro Zielplattform Build + Packaging ausführen 3. Artefakte im `release/`-Ordner prüfen 4. Git-Commit erstellen und Tag setzen (z. B. `v1.2.0`) 5. Tag und Branch pushen 6. Release-Artefakte auf der Release-Seite hochladen Beispiel Git-Workflow: ```bash git add -A git commit -m "Release x.y.z" git tag -a vx.y.z -m "vx.y.z" git push origin main git push origin vx.y.z ``` Optional per CI: - Workflow: `.gitea/workflows/build-standalone-release.yml` - Trigger: Tag-Push `v*` - Ergebnis: Plattform-Artefakte als CI-Artefakte --- ## Linux ```bash chmod +x build/build_linux.sh ./build/build_linux.sh ``` Ergebnis: - `dist/PDFtoICS/` (Ordner mit ausführbarer Datei) Optional als Release-Archiv (`.tar.gz`) verpacken: ```bash chmod +x build/package_linux.sh ./build/package_linux.sh ``` Ergebnis: - `release/PDFtoICS-linux-v.tar.gz` --- ## macOS ```bash chmod +x build/build_macos.sh ./build/build_macos.sh ``` Ergebnis: - `dist/PDFtoICS.app` Hinweis: - Für öffentliche Verteilung ist Code-Signing/Notarisierung empfohlen. Optional als Release-Archiv (`.zip`) verpacken: ```bash chmod +x build/package_macos.sh ./build/package_macos.sh ``` Ergebnis: - `release/PDFtoICS-macos-v.zip` --- ## Windows Starten Sie unter Windows: ```cmd build\build_windows.cmd ``` Ergebnis: - `dist\PDFtoICS\PDFtoICS.exe` Hinweis: - Für weniger SmartScreen-Warnungen ist Signierung empfohlen. Optional als Release-Archiv (`.zip`) verpacken: ```cmd build\package_windows.cmd ``` Ergebnis: - `release\PDFtoICS-windows-v.zip` --- ## Clean Build PyInstaller erstellt `build/` und `dist/` sowie eine `.spec` Datei im Projektverzeichnis. Optionales Aufräumen: ```bash rm -rf build dist *.spec ``` Unter Windows: ```cmd rmdir /s /q build rmdir /s /q dist del /q *.spec ```