---
titel: launchd-Job scheitert an iCloud-Dateien, obwohl der Test per SSH klappt
thema: macOS
datum: 2026-07-04
lehre: launchd-Jobs mit Zugriff auf geschützte Ordner mit einem eigenständigen Python betreiben und nativ über launchd testen, nie nur per SSH.
---

## Problem

Ein Python-Skript liest per launchd aus iCloud Drive und scheitert still mit `PermissionError`. Von Hand über SSH gestartet läuft es fehlerfrei.

## Ursache

Das virtuelle Environment baute auf einem Python, das in einem App-Bundle liegt (hier Xcode). macOS ordnet Binärdateien in App-Bundles bei der Rechtevergabe (TCC, Festplattenvollzugriff) falsch zu. Ein SSH-Lauf erbt dagegen die Rechte der Login-Sitzung und täuscht so ein Funktionieren vor.

## Lösung

- Für launchd-Jobs ein eigenständiges Python verwenden (z. B. Homebrew), nicht eines aus einem App-Bundle.
- Dem tatsächlichen Binärpfad den Festplattenvollzugriff geben; nach jedem Python-Update erneuern.
- Testen mit `launchctl kickstart`, nicht per SSH.
