Gerätebereitstellung für Xamarin.iOSDevice provisioning for Xamarin.iOS

Beim Entwickeln einer Xamarin.iOS-Anwendung ist es wichtig diese durch Bereitstellen der App auf einem physischen Gerät zu testen, zusätzlich zur Ausführung der Anwendung im Simulator.While developing a Xamarin.iOS application it is essential to test it by deploying the app to a physical device, in addition to the simulator. Bei Ausführung auf einem Gerät kann es aufgrund von Hardwarebeschränkungen, z.B. in Bezug auf den Arbeitsspeicher oder die Netzwerkkonnektivität, zu gerätespezifischen Problemen und Leistungseinbußen kommen.Device-only bugs and performance issues can transpire when running on a device, due to hardware limits such as memory or network connectivity. Um auf einem physischen Gerät zu testen, muss das Gerät bereitgestellt und Apple darüber informiert werden, dass das Gerät für Tests verwendet wird.To test on a physical device, the device must be provisioned, and Apple must be informed that the device will be used for testing.

Die hervorgehobenen Abschnitte in der folgenden Abbildung zeigen, welche Schritte vor der iOS-Bereitstellung erforderlich sind:The highlighted sections in the image below show the steps required to get set up for iOS provisioning:

Die hervorgehobenen Abschnitte in dieser Abbildung zeigen, welche Schritte vor der iOS-Bereitstellung erforderlich sindThe highlighted sections in this image show the steps required to get set up for iOS provisioning

Der nächste Schritt besteht dann in der Verteilung der Anwendung.After this, the next step is to distribute the application. Weitere Informationen zur Bereitstellung finden Sie in den Leitfäden zur App Distribution (App-Verteilung).For more information on deployment, visit the App Distribution guides.

Bevor Sie die Anwendung auf einem Gerät bereitstellen, benötigen Sie ein aktives Abonnement für das Apple Developer Program, oder Sie verwenden Free Provisioning (Kostenlose Bereitstellung).Before deploying the application to a device, you need to have an active subscription to Apple's Developer Program, or use Free Provisioning. Apple bietet zwei Optionen für das Programm:Apple offers two program options:

  • Apple Developer Program: Unabhängig davon, ob Sie eine Einzelperson oder eine Organisation sind, ermöglicht Ihnen das Apple Developer Program die Entwicklung, das Testen und das Verteilen von Apps.Apple Developer Program – Regardless of whether you are an individual or represent an organization, the Apple Developer Program allows you to develop, test, and distribute apps.
  • Apple Developer Enterprise Program: Das Enterprise-Programm eignet sich am besten für Organisationen, die Apps ausschließlich intern entwickeln und verteilen möchten.Apple Developer Enterprise Program – The Enterprise program is most suited to organizations that want to develop and distribute apps in-house only. Mitglieder des Enterprise-Programms haben keinen Zugriff auf iTunes Connect, und erstellte Apps können nicht im App Store veröffentlicht werden.Members of the Enterprise program do not have access to iTunes Connect, and apps created cannot be published to the App Store.

Um sich für eines dieser Programme zu registrieren, besuchen Sie das Apple Developer Portal.To register for either of these programs, visit the Apple Developer Portal to register. Beachten Sie, dass Sie eine Apple-ID benötigen, um sich als Apple-Entwickler registrieren zu können.Note that to register as an Apple developer, it is necessary to have an Apple ID. In diesem Leitfaden wird vorausgesetzt, dass Sie Mitglied in einem Apple Developer Program sind.This guide has been created with the assumption that you are a member of an Apple Developer Program.

Alternativ hat Apple das Free Provisioning (Kostenlose Bereitstellung) in Xcode 7 eingeführt, das es ermöglicht, ohne eine Mitgliedschaft im Apple Developer Program eine einzelne Anwendung auf einem einzelnen Gerät auszuführen.Alternatively, Apple introduced Free Provisioning in Xcode 7 which allows a single application to run on a single device without being a member of Apple's Developer Program. Bei dieser Art der Bereitstellung gibt es eine Vielzahl von Einschränkungen, die hier ausführlich beschrieben sind.There are a number of limitations when provisioning in this way, as detailed here.

Jede auf einem Gerät ausgeführte Anwendung muss eine Reihe von Metadaten (oder einen Fingerabdruck) enthalten, die Informationen über die Anwendung und den Entwickler geben.Any application that runs on a device needs to include a set of metadata (or thumbprint), which contains information about the application and the developer. Apple verwendet diesen Fingerabdruck, um sicherzustellen, dass die Anwendung bei der Bereitstellung oder beim Ausführen auf dem Gerät eines Benutzers nicht manipuliert wird.Apple uses this thumbprint to make sure that the application is not tampered with when deploying to, or running on, a user's device. Dies wird erreicht, indem App-Entwickler verpflichtet werden, ihre Apple-ID als Entwickler zu registrieren, eine App-ID einzurichten, ein „Zertifikat“ anzufordern und das Gerät zu registrieren, auf dem die Anwendung bereitgestellt wird.This is achieved by requiring app developers to register their Apple ID as a developer, and to setup an App ID, request a Certificate, and register the device on which the application will be deployed.

Wenn Sie eine Anwendung auf einem Gerät bereitstellen, wird auf dem iOS-Gerät auch ein Bereitstellungsprofil installiert.When deploying an application to a device, a Provisioning Profile is also installed on the iOS device. Das Bereitstellungsprofil dient dazu, die Informationen zu überprüfen, mit denen die App zur Buildzeit signiert wurde, und wird von Apple kryptografisch signiert.The Provisioning Profile exists to verify the information that the app was signed with at build time and is cryptographically signed by Apple. Die Prüfungen des Bereitstellungsprofils und des „Fingerabdrucks“ bestimmen, ob eine Anwendung auf einem Gerät bereitgestellt werden darf, indem die folgenden Schritte ausgeführt werden:Together, the Provisioning Profile and 'thumbprint' checks determine if an application can be deployed to a device by checking:

  • Wer? (Zertifikate: Wurde die App mit einem privaten Schlüssel signiert, der einen entsprechenden öffentlichen Schlüssel im Bereitstellungsprofil aufweist?Who (Certificates – has the app been signed with a private key, which has a corresponding public key in the provisioning profile? Das Zertifikat ordnet den Entwickler auch einem Entwicklungsteam zu)The certificate also associates the developer with a development team)
  • Was? (Individuelle App-ID: Stimmt der in „Info.plist“ festgelegte Bundle-Bezeichner mit der App-ID im Bereitstellungsprofil überein?)What (Individual App ID – Does the Bundle Identifier set in the Info.plist match the App ID in the provisioning profile?)
  • Wo? (Gerät: Ist das Gerät im Bereitstellungsprofil enthalten?)Where (Devices – Is the device contained in the provisioning profile?)

Anhand dieser Schritte stellen Sie sicher, dass alle Komponenten, die während des Entwicklungsprozesses erstellt oder verwendet werden, einschließlich der Anwendungen und Geräte, einem Apple Developer-Konto zugeordnet werden können.These steps ensure that everything that is created or used during the development process, including the applications and devices, can be traced back to an Apple Developer account.

Bereitstellen Ihres GerätsProvisioning your device

Es gibt zwei Möglichkeiten zum Bereitstellen Ihres iOS-Geräts:There are two ways to provision your iOS device:

  • Automatisch (Empfohlen) : Wählen Sie das Schema Automatische Bereitstellung in Ihrem Projekt aus, um Visual Studio Ihre Signieridentitäten, App-IDs und Bereitstellungsprofile automatisch erstellen und verwalten zu lassen.Automatically (Recommended) – Select the Automatic Provisioning scheme in your project to have Visual Studio automatically create and manage your Signing Identities, App IDs, and Provisioning Profiles. Weitere Informationen zur automatischen Verwaltung der Bereitstellung finden Sie im Leitfaden Automatische Bereitstellung.For information on how to automatically manage provisioning, see the Automatic Provisioning guide. Dies ist die empfohlene Methode der Bereitstellung eines iOS-Geräts.This is the recommended way of provisioning an iOS device.

  • Manuell: Signieridentitäten, App-IDs und Bereitstellungsprofile können über das Apple Developer Portal erstellt und verwaltet werden, wie im Leitfaden Manuelle Bereitstellung beschrieben.Manually – Signing Identities, App IDs, and Provisioning Profiles can be created and managed via the Apple Developer Portal, as described in manual provisioning guide. Diese Artefakte können dann wie im Leitfaden Apple Account Management beschrieben verwaltet werden.These artifacts can then be managed as described in the Apple Account Management guide.

Bereitstellung für AnwendungsdiensteProvisioning for Application Services

Apple stellt eine Auswahl an speziellen Anwendungsdiensten, auch Funktionen genannt, bereit, die für eine Xamarin.iOS-Anwendung aktiviert werden können.Apple provides a selection of special Application Services, also called capabilities, that can be activated for a Xamarin.iOS application. Diese Anwendungsdienste müssen im iOS-Bereitstellungsportal beim Erstellen der App-ID und auch in der Entitlements.plist-Datei, die Teil des Xamarin.iOS-Anwendungsprojekts ist, konfiguriert werden.These Application Services must be configured on both the iOS Provisioning Portal when the App ID is created and in the Entitlements.plist file that is part of the Xamarin.iOS application's project. Informationen zum Hinzufügen von Anwendungsdiensten zu Ihrer App finden Sie in den Leitfäden Introduction to Capabilities (Einführung in Funktionen) und Working with Entitlements (Arbeiten mit Berechtigungen).For information on adding Application Services to your app, refer to the Introduction to Capabilities guide and the Working with Entitlements guide.

  • Erstellen Sie eine App-ID mit den erforderlichen App-Diensten.Create an App ID with the required app services.
  • Erstellen Sie ein neues Bereitstellungsprofil, das diese App-ID enthält.Create a new provisioning profile that contains this App ID.
  • Legen Sie Berechtigungen im Xamarin.iOS-Projekt festSet Entitlements in the Xamarin.iOS Project