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:

  1. W okienku rozwiązania kliknij dwukrotnie plik Info.plist, aby go otworzyć.

  2. W sekcji Tożsamość wprowadź nazwę aplikacji i wprowadź identyfikator pakietu utworzony podczas definiowania identyfikatora aplikacji:

    Enter a Bundle Identifier

  3. Zapisz zmiany w pliku Info.plist .

  4. W okienku rozwiązania kliknij dwukrotnie plik Entitlements.plist, aby otworzyć go do edycji:

    Editing the Entitlements

  5. Wybierz i skonfiguruj wszystkie uprawnienia wymagane dla aplikacji platformy Xamarin.iOS, aby były zgodne z konfiguracją zdefiniowaną podczas tworzenia identyfikatora aplikacji.

  6. 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:

  1. Kliknij prawym przyciskiem myszy plik projektu i przejdź do pozycji Dodaj > nowy plik...:

    Add Files context menu

  2. W oknie dialogowym Nowy plik wybierz pozycję Lista właściwości systemu iOS > i nadaj mu nazwę Uprawnienia:

    New File dialog

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)*
  • 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

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)
  • 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ę od iCloud 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.

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 lub production

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 lub production

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.