Arbeiten mit Funktionen in Xamarin.iOSWorking with Capabilities in Xamarin.iOS

Um Funktionen einer Anwendung hinzuzufügen, ist oft eine zusätzliche Bereitstellungseinrichtung erforderlich. In diesem Leitfaden werden die erforderlichen Einstellungen für alle Funktionen erläutert.Adding capabilities to an application often requires additional provisioning setup. This guide explains the setup needed for all capabilities.

Apple stellt Entwicklern Funktionen, häufig auch App-Dienste genannt, als Werkzeug zur Erweiterung der Funktionen und des Verwendungsspielraums von iOS-Apps zur Verfügung.Apple provides developers with capabilities, often known as app services, as a means of extending functionality and widening the scope of what iOS apps can do. Mit diesen Funktionen können Entwickler ihrer Anwendung eine umfassendere Integration von Plattformfunktionen hinzufügen, wie z.B. das Einleiten finanzieller Transaktionen in der App, weitere Gerätedienste wie Siri und viele mehr.The capabilities allow developers to add a deeper integration of platform features to their application, such as: the ability to have monetary transactions initiated from the app, additional device services such as Siri, and more. Diese Funktionen können mit Xamarin.iOS-Projekten verwendet werden.These capabilities can be used with Xamarin.iOS projects. Die vollständige Liste der Dienste lautet wie folgt:The full list of services is described below:

  • App-GruppenApp Groups
  • Zugehörige BereicheAssociated Domains
  • DatenschutzData Protection
  • Game CenterGame Center
  • HealthKitHealthKit
  • HomeKitHomeKit
  • Konfiguration für drahtloses ZubehörWireless Accessory Configuration
  • iCloudiCloud
  • In-App-KäufeIn-App Purchase
  • Inter-App-AudioInter-App Audio
  • Apple PayApple Pay
  • WalletWallet
  • PushbenachrichtigungPush Notification
  • Persönliches VPNPersonal VPN
  • SiriSiri
  • KartenMaps
  • HintergrundmodiBackground Modes
  • Keychain-FreigabeKeychain Sharing
  • NetzwerkerweiterungenNetwork Extensions
  • HotspotkonfigurationHotspot Configuration
  • MultipfadMultipath
  • Lesen von NFC-TagsNFC Tag Reading

Funktionen können entweder über Visual Studio für Mac und Visual Studio 2019 oder manuell im Apple Developer Portal aktiviert werden.Capabilities can be enabled either through Visual Studio for Mac and Visual Studio 2019, or manually in the Apple Developer Portal. Bestimmte Funktionen, wie z.B. Wallet, Apple Pay und iCloud, erfordern eine zusätzliche Konfiguration der App-IDs.Certain capabilities such as Wallet, Apple Pay, and iCloud require additional configuration of the App IDs.

In diesem Leitfaden wird erläutert, wie Sie jeden dieser App-Dienste in Ihrer Anwendung automatisch in Visual Studio und manuell im Developer Center aktivieren können. Außerdem werden alle möglicherweise erforderlichen zusätzlichen Einstellungen beschrieben.This guide explains how to enable each of these App Services in your application automatically in Visual Studio and manually through the developer center, including any additional setup that may be required.

Hinzufügen von App-DienstenAdding App Services

Damit die App die Funktionen verwenden kann, muss sie über ein gültiges Bereitstellungsprofil mit einer App-ID verfügen, in dem der richtige Dienst aktiviert ist.To use capabilities, the app must have a valid provisioning profile that contains an App ID with the correct service enabled. Sie können dieses Bereitstellungsprofil entweder automatisch in Visual Studio für Mac und Visual Studio 2019 oder manuell im Apple Developer Center erstellen.Creating this provisioning profile can either be done automatically in Visual Studio for Mac and Visual Studio 2019, or manually in the Apple Developer Center.

In diesem Abschnitt wird erläutert, wie Sie die automatische Bereitstellung von Visual Studio oder das Developer Center zur Aktivierung der meisten Funktionen verwenden können.This section explains how to use Visual Studio's automatic provisioning or the Developer Center to enable most capabilities. Einige Funktionen, wie z.B. Wallet, iCloud, Apple Pay und App-Gruppen, erfordern zusätzliche Konfigurationsschritte.There are some capabilities such as Wallet, iCloud, Apple Pay, and App Groups that require additional setup. Diese werden in den benachbarten Handbüchern ausführlich erläutert.These are explained in detail in the adjoining guides.

Wichtig

Nicht alle Funktionen können mit der automatischen Bereitstellung hinzugefügt und verwaltet werden.Not all capabilities can be added and managed with Automatic Provisioning. Die folgende Liste enthält die unterstützten Funktionen:The following list contains the supported capabilities:

  • HealthKitHealthKit
  • HomeKitHomeKit
  • Persönliches VPNPersonal VPN
  • Konfiguration für drahtloses ZubehörWireless Accessory Configuration
  • Inter-App-AudioInter-App Audio
  • SiriKitSiriKit
  • HotspotHotspot
  • NetzwerkerweiterungenNetwork Extensions
  • Lesen von NFC-TagsNFC Tag Reading
  • MultipfadMultipath

Funktionen für Pushbenachrichtigungen, Game Center, In App-Käufe, Zuordnungen, Keychain-Freigabe, verknüpfte Domänen und Datenschutz werden derzeit nicht unterstützt.Push Notifications, Game Center, In-App Purchase, Maps, Keychain Sharing, Associated Domains, and Data Protection capabilities are not currently supported. Um diese Funktionen hinzuzufügen, verwenden Sie die manuelle Bereitstellung, und führen Sie die Schritte im Abschnitt Developer Center aus.To add these capabilities, use manual provisioning and follow the steps in the Developer Center section.

Verwenden von IDEUsing the IDE

Funktionen werden der Datei Entitlements.plist in Visual Studio für Mac hinzugefügt.Capabilities are added to the Entitlements.plist in Visual Studio for Mac. Um Funktionen hinzuzufügen, führen Sie die folgenden Schritte aus:To add capabilities, use the following steps:

  1. Öffnen Sie die Datei Info.plist Ihrer iOS-Anwendung, und wählen Sie das Schema Automatische Bereitstellung und Ihr Team aus dem Kombinationsfeld aus.Open the Info.plist file of your iOS application and select the Automatically Provisioning scheme and your Team from the combo box. Falls Sie Hilfe benötigen, führen Sie die Schritte in der Anleitung Automatische Bereitstellung aus.Follow the steps in the Automatic Provisioning guide if you need help:

    Option „Signierung automatisch verwalten“

  2. Öffnen Sie die Datei Entitlements.plist, und wählen Sie die Funktion, die Sie hinzufügen möchten:Open the Entitlements.plist file and select the capability that you wish to add:

    Hinzufügen von Funktionen zur Datei „entitlements.plist“

    Das Auswählen einer Funktion bewirkt zwei Dinge:Selecting a capability does two things:

    • Diese Funktion wird Ihrer App-ID hinzugefügt.Adds that feature to your App ID
    • Die Schlüssel-Wert-Paar für Berechtigungen wird Ihrer Datei „entitlements.plist“ hinzugefügt.Adds the entitlement key/value pair to your Entitlements.plist file.

    Visual Studio für Mac informiert Sie, wenn diese Aufgaben ausgeführt wurden, indem die folgende Erfolgsmeldung angezeigt wird:Visual Studio for Mac will advise you when these tasks have been carried out by displaying the following success message:

    Hinzufügen von Funktionen zur Datei „entitlements.plist“

Verwenden von Office Developer CenterUsing the Developer Center

Die Verwendung des Developer Centers besteht aus zwei Schritten: Erstellen einer App-ID und Verwenden der App-ID zum Erstellen eines Bereitstellungsprofils.Using the developer center is a two step process that requires creating an App ID and then using that App ID to create a provisioning profile. Diese Schritte sind weiter unten ausführlich beschrieben.These steps are detailed below.

Erstellen einer App-ID mit einem App-DienstCreating an App ID with an app service

  1. Wechseln Sie auf einem Mac (auf dem Buildhost-Mac, wenn Sie einen Windows-Computer verwenden) zum Apple Developer Center, und melden Sie sich an.Browse to the Apple Developer Center on a Mac (the build host mac if using a windows machine) and log in.

  2. Wählen Sie Zertifikate, Bezeichner und Profile aus:Select Certificates, Identifiers, and Profiles:

    Apple Developer Center

  3. Wählen Sie unter Bezeichner die Option App-IDs aus:Under Identifiers, select App IDs:

    Auswahl „App-IDs“ im Developer Center

  4. Klicken Sie zum Erstellen einer neuen App-ID auf die + -Schaltfläche in der oberen rechten Ecke.Press the + button in the top right corner to create a new App ID.

  5. Geben Sie eine Beschreibung der App-ID ein, wählen Sie „Eindeutige App-ID“ aus, und geben Sie eine Bündel-ID im Format com.domain.appname ein.Enter an App ID description, select Explicit App ID, and enter a bundle ID in the format com.domain.appname. Diese Bündel-ID sollte mit der Bündel-ID in Ihrem Projekt übereinstimmen:This bundle ID should match the bundle ID in your project:

    Hinzufügen von App-ID-Details

  6. Wählen Sie unter App-Dienste den Dienst oder die Dienste aus, die in Ihrer App erfordert werden:Under App Services select the service or services that are required in your app:

    Auswahl der App-Dienste

  7. Klicken Sie auf Weiter.Press Continue.

  8. Bestätigen Sie Ihre App-ID.Confirm your App ID. Jeder Dienst kann einen der folgenden Status aufweisen: Aktiviert, Deaktiviert oder Konfigurierbar, wie oben angezeigt.Each service will be in one of the following states: Enabled, Disabled, or Configurable, as illustrated below. Ist der Dienst Aktiviert, können Sie ihn in einem Bereitstellungsprofil verwenden.If it’s Enabled, it is ready to be used in a provisioning profile. Ist er Konfigurierbar, sind für diese Funktion weitere Konfigurationsschritte erforderlich.If it is Configurable, additional setup is required for this capability. Die zusätzlichen Konfigurationsschritte werden in nachfolgenden Abschnitten ausführlicher beschrieben.These additional steps are described in more detail in later sections.

    Bestätigung der App-ID

  9. Klicken Sie auf Registrieren und anschließend auf Fertig.Click Register and then Done. Die neu erstellte App-ID sollte nun in der Liste der iOS-App-IDs angezeigt werden.The newly created App ID should display in the iOS App IDs list.

Erstellen eines BereitstellungsprofilsCreating a Provisioning Profile

Erstellen Sie nun ein Bereitstellungsprofil, das diese App-ID enthält.Now create a provisioning profile that contains this App ID. Führen Sie die nachfolgenden Schritte aus:Follow the steps below:

  1. Wechseln Sie im Apple Developer Center zu Bereitstellungsprofile > Alle:In the Apple Developer Center, browse to Provisioning Profiles > All:

    Abschnitt „Bereitstellungsprofil“

  2. Klicken Sie zum Erstellen eines neuen Bereitstellungsprofils auf die + -Schaltfläche in der oberen rechten Ecke.Press the + button in the top right corner to create a new provisioning profile.

  3. Wählen Sie den Bereitstellungsprofiltyp aus, den Sie benötigen, und klicken Sie auf Weiter:Select the type of provisioning profile that you need, and click Continue:

    Auswahl des Bereitstellungsprofils

  4. Wählen Sie aus der Dropdownliste die App-ID aus, die in den vorhergehenden Schritten erstellt wurde, und klicken Sie auf Weiter:From the dropdown list, select the App ID that was created in the steps above and press Continue:

    Auswahl der App-ID

  5. Wählen Sie die Zertifikate zum Signieren der App aus, und klicken Sie auf Weiter:Select the certificates used to sign the app and press Continue:

    Auswahl der Zertifikate

  6. Wählen Sie die Geräte aus, die dieses Profil enthalten soll, und klicken Sie auf Weiter:Select the devices to be included in this profile and press Continue:

    Auswahl der Geräte für das Bereitstellungsprofil

  7. Geben Sie dem Profil zur Identifizierung einen Namen, und klicken Sie zum Generieren des Profils auf Weiter:Give the profile a name so that it can be identified and press Continue to generate the profile:

    Name des Bereitstellungsprofils

  8. Klicken Sie zum Herunterladen des Profils auf die Schaltfläche Herunterladen. Doppelklicken Sie im Finder auf die Datei, um das Bereitstellungsprofil zu installieren.Press the Download button to download it, and double-click on the file in Finder to install the provisioning profile.

  9. Stellen Sie bei Verwendung von Visual Studio sicher, dass die Option Manuelle Bereitstellung ausgewählt ist.If you are using Visual Studio ensure that the Manual Provisioning option is selected.

  10. Wechseln Sie in Visual Studio für Mac bzw. Visual Studio zu Projektoptionen > Bündelsignierung, und legen Sie das Bereitstellungsprofil auf das Projekt fest, das Sie gerade erstellt haben:In Visual Studio for Mac / Visual Studio, browse to Project Options > Bundle Signing and set the provisioning profile to the one that was just created:

    Visual Studio für Mac – Projektoptionen

Wichtig

Möglicherweise müssen Sie auch Berechtigungsschlüssel in der Datei „Entitlement.plist“ sowie Datenschutzschlüssel in der Datei „Info.plist“ festlegen.You may also need to set entitlement keys in the Entitlement.plist file and privacy keys in the Info.plist file. Weitere Informationen zu diesen Berechtigungen finden Sie im Leitfaden Working with Entitlements (Arbeiten mit Berechtigungen).More information on these entitlements is provided in the Working with Entitlements guide.

Nächste SchritteNext Steps

Wenn eine Funktion auf der Serverseite aktiviert wurde, sind weitere Schritte erforderlich, damit Ihre App die Funktionen auch verwenden kann.Once a Capability has been enabled on the server side, there is still work that needs to be done to allow your app to use the functionality. In der folgenden Liste werden mögliche weitere Schritte aufgeführt:The list below describes additional steps that may need to be taken:

  • Verwenden des Framework-Namespaces in Ihrer AppUse the framework namespace in your app.
  • Hinzufügen der erforderlichen Berechtigungen zu Ihrer AppAdd the required entitlements to your App. Informationen zu den erforderlichen Berechtigungen und wie sie hinzugefügt werden finden Sie im Leitfaden Introduction to Entitlements (Einführung in Berechtigungen).Information on the entitlements required and how to add them is detailed in the Introduction to Entitlements guide.

Funktionen zur ProblembehandlungTroubleshooting Capabilities

In der folgenden Liste werden einige der häufigsten Probleme aufgeführt, die zu Hindernissen bei der Entwicklung einer App mit einem aktivierten App-Dienst führen können:The list below details some of the most common issues that can create roadblocks when developing an app with an app service enabled.

  • Stellen Sie sicher, dass die richtige ID ordnungsgemäß erstellt und im Abschnitt Zertifikate, Bezeichner und Profile des Apple Developer Portal registriert wurde.Ensure that the correct ID has been properly created and registered in the Certificates, IDs & Profiles section of Apple's Developer Portal.
  • Stellen Sie sicher, dass der Dienst der App-ID (oder der Erweiterungs-ID) hinzugefügt wurde und dass er für die Verwendung der zuvor erstellten App-Gruppe/Händler-ID/Container unter Zertifikate, Bezeichner und Profile des Apple Developer Portal konfiguriert wurde.Ensure that the Service have been added to the App's (or Extension's) ID and that the service is configured to use the App Group/Merchant ID/Container created above in the Certificates, IDs & Profiles of Apple's Developer Portal.
  • Stellen Sie sicher, dass die Bereitstellungsprofile und App-IDs installiert wurden und dass die Datei Info.plist der App (im Xamarin-Projekt) eine der zuvor konfigurierten App-IDs verwendet.Ensure that the Provisioning Profiles and App IDs have been installed and that the App's Info.plist (in the Xamarin Project) is using one of the App IDs configured above.
  • Stellen Sie sicher, dass für die Datei Entitlements.plist der App (im Xamarin-Projekt) der richtige Dienst aktiviert wurde.Ensure that the App's Entitlements.plist file (in the Xamarin Project) has the correct service enabled.
  • Stellen Sie sicher, dass die Datenschutzschlüssel in der Datei „Info.plist“ entsprechend festgelegt sind.Ensure that the appropriate privacy-keys are set in info.plist
  • Stellen Sie im Bereich iOS-Bündelsignierung der App sicher, dass Benutzerdefinierte Berechtigungen auf Entitlements.plist festgelegt ist.In the App's iOS Bundle Signing, ensure that the Custom Entitlements is set to Entitlements.plist. Hierbei handelt es sich nicht um die Standardeinstellung für Debug- und iOS-Simulatorbuilds.This is not the default setting for Debug and iOS Simulator builds.

ZusammenfassungSummary

In diesem Leitfaden wurden Funktionen, auch App-Dienste genannt, sowie deren Aktivierung in Visual Studio und im Apple Developer Center beschrieben.This guide explained Capabilities, or app services, and described how they can be enabled in Visual Studio and in the Apple Developer Center. Außerdem wird die Konfiguration von komplizierteren Diensten erläutert, wie z.B. Wallet, iCloud, Apple Pay und App-Gruppen.It also detailed how to set up more complicated services such as Wallet, iCloud, Apple Pay, and App Groups. Abschließend werden weitere Konfigurationsschritte sowie einfache Optionen zur Problembehandlung aufgeführt.Finally, it covered the next steps for getting set up and simple troubleshooting options.