Praca z uprawnieniami na platformie Xamarin.iOS
Uprawnienia to specjalne możliwości aplikacji i uprawnienia zabezpieczeń przyznane aplikacjom, które są poprawnie skonfigurowane do ich używania.
W systemie iOS aplikacje działają w piaskownicy, która udostępnia zestaw reguł, które ograniczają dostęp między aplikacją a pewnymi zasobami systemowymi lub danymi użytkownika. Uprawnienia są używane do żądania rozszerzenia piaskownicy przez system w celu zapewnienia aplikacji dodatkowych możliwości.
Aby rozszerzyć możliwości aplikacji, należy podać uprawnienie w pliku Entitlements.plist aplikacji. Tylko niektóre funkcje można rozszerzyć i są one wymienione w przewodniku Praca z możliwościami i opisano je poniżej. Uprawnienia są przekazywane do systemu jako para klucz/wartość, a zazwyczaj tylko jedna z nich jest wymagana dla każdej możliwości. Określone klucze i wartości zostały opisane w sekcji Dokumentacja klucza uprawnień w dalszej części tego przewodnika. Visual Studio dla komputerów Mac i Visual Studio zapewniają przejrzysty interfejs do dodawania uprawnień w aplikacji platformy Xamarin.iOS za pomocą edytora Entitlements.plist. W tym przewodniku przedstawiono edytor Entitlements.plist i sposób jego używania. Zawiera również odwołanie do wszystkich uprawnień, które można dodać do projektu systemu iOS dla każdej funkcji.
Uprawnienia i aprowizowanie
Plik Entitlements.plist służy do określania uprawnień i służy do podpisywania pakietu aplikacji.
Wymagana jest jednak dodatkowa aprowizacja, aby upewnić się, że aplikacja jest poprawnie podpisana kodem. Użyty profil aprowizacji musi zawierać identyfikator aplikacji z włączoną wymaganą możliwością. Aby uzyskać informacje na temat tego, jak to zrobić, zapoznaj się z przewodnikiem Praca z możliwościami .
Ważne
Plik Entitlements.plist pomaga wypełnić poprawne właściwości aplikacji przy użyciu funkcji, ale nie może wygenerować profilu aprowizacji, ponieważ nie jest on połączony z kontem dewelopera firmy Apple. Nadal trzeba będzie wygenerować profil aprowizacji przy użyciu portalu dla deweloperów, aby wdrożyć i rozpowszechnić aplikację.
Ustawianie uprawnień w projekcie platformy Xamarin.iOS
Oprócz wybierania i konfigurowania wymaganych usług aplikacji podczas definiowania identyfikatora aplikacji uprawnienia muszą być również skonfigurowane w projekcie Xamarin.iOS przez edytowanie plików Info.plist i Entitlements.plist .
Aby skonfigurować uprawnienia w Visual Studio dla komputerów Mac, wykonaj następujące czynności:
W okienku rozwiązania kliknij dwukrotnie plik Info.plist, aby go otworzyć.
W sekcji Tożsamość wprowadź nazwę aplikacji i wprowadź identyfikator pakietu utworzony podczas definiowania identyfikatora aplikacji:
Zapisz zmiany w pliku Info.plist .
W okienku rozwiązania kliknij dwukrotnie plik Entitlements.plist, aby otworzyć go do edycji:
Wybierz i skonfiguruj wszystkie uprawnienia wymagane dla aplikacji platformy Xamarin.iOS, aby były zgodne z konfiguracją zdefiniowaną podczas tworzenia identyfikatora aplikacji.
Zapisz zmiany w pliku Entitlements.plist .
Dodawanie nowego pliku Entitlements.plist
Uprawnienia są dodawane do aplikacji za pośrednictwem pliku Entitlements.plist. Ten plik jest domyślnie uwzględniany w projektach Xamarin.iOS, ale może brakować w starszych projektach.
Aby dodać plik Entitlements.plist do platformy Xamarin.iOS, wykonaj następujące czynności:
Kliknij prawym przyciskiem myszy plik projektu i przejdź do pozycji Dodaj > nowy plik...:
W oknie dialogowym Nowy plik wybierz pozycję Lista właściwości systemu iOS > i nadaj mu nazwę Uprawnienia:
Odwołanie do klucza uprawnień
Klucze uprawnień można dodać za pośrednictwem panelu Źródło edytora Entitlements.plist. Wymagane klucze są zwykle dodawane podczas korzystania z edytora Entitlements.plist, ale są wymienione poniżej w celu uzyskania informacji.
Portfel
Opis: Formalnie znany jako Passbook, portfel to aplikacja, która przechowuje i zarządza przechodzi. Te karnety mogą być kartami kredytowymi, kartami sklepowymi, kartami pokładowymi lub biletami.
- Identyfikator typu przekazywanego
- Klucze: com.apple.developer.pass-type-identifiers
- Ciąg:
$(TeamIdentifierPrefix)*
- Identyfikator typu przekazywanego
Uwagi:
- Umożliwi to aplikacji zezwolenie na wszystkie typy przekazywane. Aby ograniczyć aplikację i zezwolić tylko na podzestaw typów przekazywania zespołu, ustaw wartość ciągu na:
$(TeamIdentifierPrefix)pass.$(CFBundleIdentifier)
Gdzie pass.$(CFBundleIdentifier) to identyfikator dostępu utworzony powyżej
- Umożliwi to aplikacji zezwolenie na wszystkie typy przekazywane. Aby ograniczyć aplikację i zezwolić tylko na podzestaw typów przekazywania zespołu, ustaw wartość ciągu na:
iCloud
Opis: usługa iCloud udostępnia użytkownikom systemu iOS wygodny i prosty sposób przechowywania zawartości i udostępniania jej między urządzeniami. Istnieją cztery sposoby, w jaki deweloperzy mogą używać usługi iCloud do zapewnienia magazynu dla swoich użytkowników: magazyn klucz-wartość, magazyn UIDocument Storage, CoreData i korzystanie z zestawu CloudKit bezpośrednio w celu zapewnienia magazynu dla poszczególnych plików i katalogów. Aby uzyskać więcej informacji na ten temat, zapoznaj się z przewodnikiem Wprowadzenie do usługi iCloud.
- Dokumenty iCloud i CloudKit
- Klucze: com.apple.developer.ubiquity-container-identifiers
- Ciąg:
$(TeamIdentifierPrefix)$(CFBundleIdentifier)
- Magazyn KeyValue w usłudze iCloud
- Klucz: com.apple.developer.ubiquity-kvstore-identifier
- Ciąg:
$(TeamIdentifierPrefix)$(CFBundleIdentifier)
- Dokumenty iCloud i CloudKit
Uwagi:
- Ciąg
$(TeamIdentifierPrefix)
można znaleźć, logując się w celu developer.apple.com i odwiedź Centrum > członkowskie Podsumowanie konta dewelopera konta>, aby uzyskać identyfikator zespołu (lub identyfikator indywidualny dla pojedynczych deweloperów). Będzie to ciąg 10 znaków (na przykład A93A5CM278). - Ciąg
$(CFBundleIdentifier)
zaczyna się odiCloud
i jest ustawiany, gdy kontener usługi iCloud jest oceniany zgodnie z krokami w przewodniku Praca z możliwościami . - Symbole zastępcze $
(TeamIdentifierPrefix)
i$(CFBundleIdentifier)
mogą być używane i zostaną zastąpione poprawnymi wartościami w czasie kompilacji.
- Ciąg
Ważne
Firma Apple udostępnia narzędzia pomagające deweloperom w prawidłowym obsłudze ogólnego rozporządzenia o ochronie danych (RODO) Unii Europejskiej.
Grupy aplikacji
Opis: Grupa aplikacji umożliwia różnym aplikacjom (lub jej rozszerzeń) dostęp do udostępnionej lokalizacji przechowywania plików.
- Klucz: com.apple.security.application-groups
- Ciąg: group.$(CFBundleIdentifier)
Apple Pay
- Opis: Płatność apple umożliwia użytkownikom płacenie za towary fizyczne za pośrednictwem urządzenia z systemem iOS.
- Klucz: com.apple.developer.in-app-payments
- Ciąg: merchant.your.mechantid
Powiadomienia push
- Klucz: środowisko aps-environment
- Ciąg:
development
lubproduction
Siri
- Opis: Zestaw SiriKit umożliwia aplikacji systemu iOS udostępnianie usług dostępnych dla siri i aplikacji Mapy na urządzeniu z systemem iOS przy użyciu rozszerzeń aplikacji oraz nowych struktur interfejsu użytkownika Intencje i intencje. Aby uzyskać więcej informacji, zapoznaj się z przewodnikiem Wprowadzenie do zestawu SiriKit.
- Klucz: com.apple.developer.siri
Osobista sieć VPN
- Klucz: com.apple.developer.networking.vpn.api
- Ciąg: allow-vpn
Udostępnianie łańcucha kluczy
- Opis: Udostępnianie pęku kluczy umożliwia deweloperom aplikacji udostępnianie haseł przechowywanych w pęku kluczy urządzenia z innymi aplikacjami opracowanymi przez ten sam zespół. Dostęp można ograniczyć, przekazując identyfikator grupy dostępu łańcucha kluczy w ciągu.
- Klucz: keychain-access-groups
- Ciąg: $(AppIdentifierPrefix) $(CFBundleIdentifier)
Dźwięk Inter-App
- Opis: Inter-App Audio umożliwia deweloperom przesyłanie strumieniowe dźwięku między aplikacjami.
- Klucz: inter-app-audio
- Wartość logiczna: TAK
Domeny skojarzone
- Opis: Skojarzone domeny, które powinny być obsługiwane jako linki uniwersalne, powinny być przekazywane z tym uprawnieniem. Można zaimplementować linki uniwersalne, aby umożliwić głębokie łączenie między aplikacją a witryną internetową. Należy podać wpis do każdej domeny obsługiwanej przez aplikację, a każdy wpis powinien zaczynać się od
applinks:
- Klucz: com.apple.developer.associated-domains
- Ciąg: webcredentials:example.com
Ochrona danych
- Opis: Włączenie ochrony danych używa wbudowanego sprzętu szyfrowania do przechowywania poufnych danych używanych w aplikacji w formacie zaszyfrowanym. Domyślnie poziom ochrony jest ustawiony na pełną ochronę (pliki są dostępne tylko wtedy, gdy urządzenie zostanie odblokowane).
- Klucz: com.apple.developer.default-data-protection
- Ciąg: NSFileProtectionComplete
HomeKit
- Opis: Platforma HomeKit udostępnia platformę do konfigurowania, konfigurowania i zarządzania obsługiwanymi urządzeniami do automatyzacji domu — wszystko z urządzenia z systemem iOS. Aby uzyskać więcej informacji na temat korzystania z zestawu HomeKit, zapoznaj się z przewodnikiem Wprowadzenie do zestawu HomeKit.
- Klucz: com.apple.developer.homekit
- Wartość logiczna: TAK
HealthKit
- Opis: HealthKit to struktura wprowadzona w systemie iOS 8, która zapewnia scentralizowany, skoordynowany i bezpieczny magazyn danych na potrzeby informacji związanych z kondycją. Aby uzyskać więcej informacji na temat korzystania z zestawu HealthKit, zapoznaj się z przewodnikiem Wprowadzenie do zestawu HealthKit.
- Klucz: com.apple.developer.healthkit
- Wartość logiczna: TAK
Konfiguracja zasobów bezprzewodowych
- Opis: Korzystanie z konfiguracji dostępu bezprzewodowego umożliwia aplikacji konfigurowanie akcesoriów MFi Wi-Fi
- Klucz: com.apple.external-accessory.wireless-configuration
- Wartość logiczna: TAK
Zestaw klas
- Opis: Zestaw ClassKit umożliwia nauczycielom wyświetlanie postępu uczniów w przypisanych działaniach w aplikacji.
- Klucz: com.apple.developer.ClassKit-environment
- Ciąg:
development
lubproduction
Podsumowanie
W tym przewodniku przedstawiono uprawnienia i sposób ich używania w Visual Studio dla komputerów Mac i w programie Visual Studio. Podano również odwołanie do par Klucz/Wartość dla każdej funkcji.