Uprawnienia integracji z systemem (TCC) na macOS
Na macOS dostęp do Kalendarza, Przypomnień, Poczty i Notatek kontroluje system Transparency, Consent and Control (TCC), czyli mechanizm stojący za oknami dialogowymi “zezwól na dostęp”. Pomocnik wiersza poleceń, uruchamiany jako osobny proces, potrzebuje kilku dodatkowych informacji, żeby współpracować z TCC tam, gdzie zwykłe polecenie zawiodłoby po cichu. Zobacz Wewnętrzne mechanizmy integracji z systemem, żeby dowiedzieć się, jak żądanie w ogóle trafia do tych pomocników.
Wbudowany Info.plist
Dział zatytułowany „Wbudowany Info.plist”Każdy pomocnik ma własny plik Info.plist wbudowany bezpośrednio w swój plik binarny, dzięki czemu tekst opisu użycia widoczny w oknie z prośbą o dostęp oraz tożsamość aplikacji podróżują razem z pomocnikiem przez granicę procesu. Ma to znaczenie na macOS 14 i nowszych: bez wbudowanego NSCalendarsFullAccessUsageDescription żądanie dostępu do kalendarza zostaje odrzucone bez żadnego okna dialogowego, zamiast zapytać ciebie o zgodę. Każdy pomocnik ma też swój własny identyfikator, na przykład pl.speedwave.desktop.calendar.
Mapowanie na usługi TCC
Dział zatytułowany „Mapowanie na usługi TCC”Uprawnienie systemowe stojące za daną integracją nie zawsze nazywa się tak jak aplikacja. Poczta i Notatki działają przez Apple Events zamiast osobnego frameworka, więc obie podlegają temu samemu uprawnieniu AppleEvents:
| Integracja | Usługa TCC |
|---|---|
| Kalendarz | Calendar |
| Przypomnienia | Reminders |
| Poczta | AppleEvents |
| Notatki | AppleEvents |
Wspólna bramka uprawnień
Dział zatytułowany „Wspólna bramka uprawnień”Jeden mechanizm centralnie kieruje sprawdzanie uprawnień zarówno dla EventKit, jak i Apple Events do wspólnego modelu stanu, dzięki czemu Speedwave może zgłosić spójny stan niezależnie od tego, który framework stoi za daną integracją. Gdy Poczta albo Notatki, czyli aplikacja docelowa, nie są uruchomione, macOS zgłasza właśnie to zamiast błędu uprawnień, a Speedwave każe ci otworzyć aplikację zamiast sugerować reset uprawnień.
Weryfikacja przy starcie
Dział zatytułowany „Weryfikacja przy starcie”Przy każdym uruchomieniu Speedwave sprawdza każdą włączoną przez ciebie integrację z systemem względem jej aktualnego uprawnienia w macOS i wyłącza każdy przełącznik, którego uprawnienie przestało być przyznane. To, które integracje w ogóle da się przełączać, kontrolują Funkcje beta.