# 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](/pl/docs/under-the-hood/os-integration-internals/), żeby dowiedzieć się, jak żądanie w ogóle trafia do tych pomocników.

## 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

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ń

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ń.
**Caution:** Przyznane uprawnienie nie gwarantuje, że dane rzeczywiście da się odczytać, dlatego Speedwave wykonuje drugie sprawdzenie, które czyta prawdziwe dane, zanim uzna integrację za działającą.

## 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](/pl/docs/guides/beta-features/).