40 lines
2.2 KiB
Markdown
40 lines
2.2 KiB
Markdown
---
|
|||
|
|
type: issue
|
||
|
|
id: "0022"
|
||
|
|
status: open
|
||
|
|
created: 2026-08-02
|
||
|
|
milestone: M4
|
||
|
|
priority: low
|
||
|
|
area: infrastructure
|
||
|
|
gitlab_iid: "22"
|
||
|
|
related: []
|
||
|
|
---
|
||
|
|
# BUILD-01: macOS-Client reproduzierbar bauen — aktuell nur manuell auf sorbs Mac
|
||
|
|
|
||
|
|
> Import aus [management#22](https://git.lab/axion1337.chat/management/-/issues/22) (2026-08-11). Kommentare und Verlauf bleiben dort; kanonisch ist ab jetzt diese Datei (ADR-0012).
|
||
|
|
|
||
|
|
Der macOS-Client wurde am 2026-08-02 erstmals gebaut (Release [desktop-1.12.17-themes](https://git.lab/axion1337.chat/ThreadNet-Web/-/releases/desktop-1.12.17-themes)), aber **von Hand auf sorbs Mac** und mit zwei Umgehungen. Reproduzierbar ist das so nicht.
|
||
|
|
|
||
|
|
## Was gemacht werden musste
|
||
|
|
|
||
|
|
| Hürde | Umgehung | Dauerhaft? |
|
||
|
|
|---|---|---|
|
||
|
|
| `Can't find rustc` (native Module sqlcipher/seshat) | rustup installiert, nach dem Build wieder entfernt | ❌ bei jedem Build neu |
|
||
|
|
| `Failed to check actool version. Is Xcode 26 or higher installed?` beim **DMG** | DMG mit `hdiutil` statt electron-builder gebaut | ⚠️ funktioniert, aber ohne Installer-Layout |
|
||
|
|
| Code-Signing | unsigniert, `CSC_IDENTITY_AUTO_DISCOVERY=false` | ❌ Nutzer müssen `xattr -dr com.apple.quarantine` ausführen |
|
||
|
|
|
||
|
|
Das **ZIP** baut electron-builder 26 problemlos; nur das DMG-Target verlangt `actool` aus dem vollen Xcode (~10 GB, nur über den App Store mit Apple-ID).
|
||
|
|
|
||
|
|
## Optionen
|
||
|
|
|
||
|
|
- **A — so lassen**: macOS bleibt ein manueller Build vor jedem Release. Billig, aber jedes Mal dieselben Handgriffe und leicht zu vergessen.
|
||
|
|
- **B — Mac-Runner im Lab**: braucht Apple-Hardware, volles Xcode und einen GitLab-Runner darauf. Löst auch das DMG-Problem.
|
||
|
|
- **C — DMG dauerhaft per `hdiutil`** in einem Skript im Repo: nimmt electron-builder das DMG ab, funktioniert ohne Xcode. Signing bleibt offen.
|
||
|
|
|
||
|
|
Empfehlung: **C jetzt** (kostet eine Stunde, macht den Build ohne Xcode vollständig), **B**, wenn macOS ein regelmäßiges Ziel wird.
|
||
|
|
|
||
|
|
## Hängt zusammen mit
|
||
|
|
|
||
|
|
- ThreadNet-Web#6 (Signing/Notarisierung) — ohne Signatur bleibt die Gatekeeper-Hürde für jeden Nutzer.
|
||
|
|
- ThreadNet-Web#10 (Rebrand) — bereits teilweise umgesetzt: `apps/desktop/axion1337/build.json` (Commit `c8d4587`) macht aus `Element.app` eine `ThreadNet.app` mit eigenem Icon.
|