Die Ursache stand wörtlich im Protokoll von tccd: Prompting policy for hardened runtime; service: kTCCServiceCalendar requires entitlement com.apple.security.personal-information.calendars but it is missing Bei aktivierter Hardened Runtime verlangt TCC diese Entitlements auch ohne App-Sandbox. Die verbreitete Annahme, sie gälten nur für sandboxed Apps, ist falsch — und ich bin ihr aufgesessen. Ohne sie zeigt macOS den Dialog gar nicht erst an: die Anfrage kommt nach Millisekunden mit false zurück, der Status bleibt notDetermined, und die App taucht in den Systemeinstellungen nie auf. Dort lässt sich auch nichts nachtragen, der Kalenderbereich hat kein Pluszeichen — eine Sackgasse ohne jede Fehlermeldung. Gesetzt sind jetzt calendars, location, apple-events und audio-input, also alles, was Phase 3, 4 und 7 brauchen. Sie fehlen sonst genau dann, wenn das Feature fertig ist und niemand mehr an TCC denkt. Gefunden durch Ausschluss, nicht durch Nachdenken: eine minimale Test-App (normales Fenster, im Vordergrund, gleiches Zertifikat, nichts von Onyx darin) scheiterte identisch. Damit war belegt, dass es nicht an Onyx lag. Der Weg dorthin führte über mehrere falsche Fährten, die in docs/spikes/E-tcc-hardened-runtime.md stehen, damit sie niemand zweimal geht — darunter eine eigene: `log show` wurde von zsh abgefangen, und weil stderr umgeleitet war, sah die leere Ausgabe wie ein Befund aus. In der Praxis geprüft: Dialog erscheint, Zugriff erteilt, Status 3.
2.7 KiB
2.7 KiB