Veröffentlichen von Xamarin.iOS-Apps im App StorePublishing Xamarin.iOS apps to the App Store

Ein App-Entwickler muss eine App gemeinsam mit Screenshots, einer Beschreibung, Symbolen und anderen Informationen zunächst übermitteln, bevor er sie im App Store veröffentlichen kann.To publish an app to the App Store, an app developer must first submit it – along with screenshots, a description, icons, and other information – to Apple for review. Nachdem die Veröffentlichung der App genehmigt wurde, wird sie im App Store verfügbar gemacht. Dort können Benutzer die App erwerben und direkt auf ihrem iOS-Gerät installieren.After approving the app, Apple places it on the App Store, where users can purchase it and install it directly from their iOS devices.

In diesem Leitfaden werden die Schritte zur Vorbereitung einer App für die Veröffentlichung im App Store und zum Übermitteln der App an Apple zur Überprüfung beschrieben.This guide describes the steps to follow to prepare an app for the App Store and send it to Apple for review. Folgende Aspekte werden besprochen:In particular, it describes:

  • Befolgen der Richtlinien für die Überprüfung im App StoreFollowing the App Store Review Guidelines
  • Einrichten einer App-ID und BerechtigungenSetting up an App ID and entitlements
  • Bereitstellen eines Symbols für den App Store und von App-SymbolenProviding an App Store icon and app icons
  • Einrichten eines App Store-BereitstellungsprofilsSetting up an App Store provisioning profile
  • Aktualisieren der Buildkonfiguration ReleaseUpdating the Release build configuration
  • Konfigurieren Ihrer App in iTunes ConnectConfiguring your app in iTunes Connect
  • Erstellen Ihrer App und Übermittlung an AppleBuilding your app and submitting it to Apple

Wichtig

Apple hat mitgeteilt, dass ab März 2019 alle Apps und Updates, die an den App Store gesendet werden, mit dem iOS 12.1 SDK oder höher, das in Xcode 10.1 oder höher enthalten ist, erstellt worden sein müssen.Apple has indicated that starting in March 2019, all apps and updates submitted to the App Store must have been built with the iOS 12.1 SDK or later, included in Xcode 10.1 or later. Apps müssen ebenso die Bildschirmgrößen des iPhone XS und des iPad Pro in 12,9" unterstützen.Apps should also support the iPhone XS and 12.9" iPad Pro screen sizes.

App Store-RichtlinienApp Store guidelines

Stellen Sie sicher, dass Ihre App die von Apple vorgegebenen Standards (App Store Review Guidelines (Richtlinien für die Überprüfung im App Store)) erfüllt, bevor Sie eine App für die Veröffentlichung im App Store übermitteln.Before submitting an app for publication in the App Store, make sure that it meets the standards defined by Apple's App Store Review Guidelines. Wenn Sie eine App an den App Store senden, prüft Apple diese App, um sicherzustellen, dass sie die Anforderungen erfüllt.When you submit an app to the App Store, Apple reviews it to make sure that it meets these requirements. Sollte dies nicht der Fall sein, wird die App von Apple abgelehnt. Dann müssen Sie auf die angegebenen Probleme reagieren und die App erneut einreichen.If it does not, Apple will reject it – and you will need to address the cited problems and resubmit. Deshalb wird empfohlen, die Richtlinien so früh wie möglich im Entwicklungsprozess zu lesen.Therefore, it is a good idea to become familiar the guidelines as early as possible in the development process.

Beachten Sie bei der Übermittlung einer App Folgendes:A couple of things to watch out for when submitting an app:

  1. Achten Sie darauf, dass die Beschreibung der App zu deren Funktionen passt.Make sure the app’s description matches its functionality.
  2. Stellen Sie sicher, dass die App bei normaler Nutzung nicht abstürzt.Test that the app doesn’t crash under normal usage. Dies schließt die Nutzung auf jedem iOS-Gerät, das sie unterstützt, mit ein.This includes usage on every iOS device it supports.

Sehen Sie sich außerdem Ressourcen bezüglich des App Store an, die von Apple bereitstellt werden.Also take a look at App Store-related resources that Apple provides.

Einrichten einer App-ID und BerechtigungenSet up an App ID and entitlements

Jede iOS-App hat eine eindeutige App-ID, die wiederum verknüpfte Anwendungsdienste aufweist, die sogenannten Berechtigungen.Every iOS app has a unique App ID, which has an associated set of application services called entitlements. Durch Berechtigungen können Apps unterschiedliche Vorgänge durchführen, z.B. das Erhalten von Pushbenachrichtigungen, der Zugriff auf iOS-Features wie HealthKit usw.Entitlements allow apps to do various things such as receive push notification, access iOS features such as HealthKit, and more.

Öffnen Sie das Apple Developer-Portal, und führen Sie die folgenden Schritt durch, um eine App-ID zu erstellen und erforderliche Berechtigungen auszuwählen:To create an App ID and select any needed entitlements, visit the Apple Developer Portal and follow these steps:

  1. Melden Sie sich am Apple Developer Portal an.Login to the Apple Developer Portal. Wenn Sie noch nicht über eine Apple-ID verfügen, erstellen Sie zunächst eine Apple-ID.If you don't already have an Apple ID, create an Apple ID first.
  2. Navigieren Sie zum Abschnitt Certificates, IDs & Profiles (Zertifikate, IDs und Profile) und dann zum Abschnitt Identifiers (Bezeichner).Go to the Certificates, IDs & Profiles section, and then to the Identifiers section.
  3. Klicken Sie oben auf der Seite auf die Schaltfläche + neben der Überschrift „Identifiers“ (Bezeichner).Click the + button next to the Identifiers heading at the top of the page.
  4. Wählen Sie App IDs (App-IDs) aus, und klicken Sie auf Continue (Weiter).Select App IDs and click Continue.
  5. Klicken Sie auf App und anschließend auf Continue (Weiter).Select App and then click Continue.
  6. Geben Sie eine Beschreibung und Bundle-ID für die neue Anwendung ein, und wählen Sie alle Funktionen aus, die für Ihre Xamarin.iOS-Anwendung erforderlich sind.Enter a Description and Bundle ID for the new application, and select any Capabilities that will be required by your Xamarin.iOS application. App-Dienste werden im Leitfaden Arbeiten mit Funktionen in Xamarin.iOS weiter beschrieben.App Services are further described in the Working with capabilities in Xamarin.iOS guide. Klicken Sie nach Abschluss der Auswahl auf Continue (Weiter).When you finish making your selections, click Continue.
  7. Klicken Sie auf die Schaltfläche Register (Registrieren), um den Vorgang zum Erstellen der neuen App-ID abzuschließen.Click the Register button to complete the process for creating the new App ID.

Wenn Sie Ihre App-ID definieren, müssen Sie nicht nur die erforderlichen Anwendungsdienste auswählen und konfigurieren sondern auch die App-ID und Berechtigungen in Ihrem Xamarin.iOS-Projekt. Bearbeiten Sie dafür die Dateien Info.plist und Entitlements.plist.In addition to selecting and configuring the required application services when defining your App ID, you must configure the App ID and entitlements in your Xamarin.iOS project by editing the Info.plist and Entitlements.plist files. Weitere Informationen finden Sie im Leitfaden Arbeiten mit Berechtigungen in Xamarin.iOS. Dort wird das Erstellen der Datei Entitlements.plist und die Bedeutung der verschiedenen enthaltenen Berechtigungseinstellungen beschrieben.For more information, take a look at the Working with Entitlements in Xamarin.iOS guide, which describes how to create an Entitlements.plist file and the meaning of the various entitlement settings it contains.

Bereitstellen eines App Store-SymbolsInclude an App Store icon

Wenn Sie eine App an Apple übermitteln, achten Sie darauf, dass sie einen Ressourcenkatalog mit einem App Store-Symbol enthält.When you submit an app to Apple, be sure that it includes an asset catalog that contains an App Store icon. Sehen Sie sich den Leitfaden App Store icons in Xamarin.iOS (App Store-Symbole in Xamarin.iOS) an, in dem dieser Vorgang näher erläutert wird.To learn how to do this, take a look at the App Store icons in Xamarin.iOS guide.

Festlegen der App-Symbole und StartbildschirmeSet the apps icons and launch screens

Eine App wird nur dann von Apple im App Store veröffentlicht, wenn sie entsprechende Symbole und Startbildschirme für alle iOS-Geräte aufweist, auf denen sie ausgeführt werden kann.For Apple to make an iOS app available on the App Store, it must have proper icons and launch screens for all of the iOS devices on which it can run. Weitere Informationen zum Einrichten von App-Symbolen und Startbildschirmen finden Sie in den folgenden Leitfäden:For more information about setting up app icons and launch screens, read the following guides:

Erstellen und Bereitstellen eines App Store-BereitstellungsprofilsCreate and install an App Store provisioning profile

iOS verwendet Bereitstellungsprofile, um zu steuern, wie ein bestimmtes Anwendungsbuild bereitgestellt werden kann.iOS uses provisioning profiles to control how a particular application build can be deployed. Hierbei handelt es sich um Dateien mit Informationen zu dem Zertifikat, das zum Signieren einer App verwendet wurde, der App-ID sowie dem Ort, an dem die App installiert werden kann.These are files that contain information about the certificate used to sign an app, the App ID, and where the app can be installed. Für die Entwicklung und Ad-hoc-Verteilung enthält das Bereitstellungsprofil auch eine Liste der zulässigen Geräte, auf denen die App bereitgestellt werden kann.For development and ad hoc distribution, the provisioning profile also includes the list of allowed devices to which you can deploy the app. Für die Verteilung im App Store enthält das Profil jedoch nur Zertifikats- und App-ID-Informationen, da eine öffentliche Verteilung nur über den App Store möglich ist.However, for App Store distribution, only certificate and App ID information are included since the only mechanism for public distribution is the App Store.

Führen Sie die folgenden Schritte durch, um ein App Store-Bereitstellungsprofil zu erstellen und zu installieren:To create and install an App Store provisioning profile, follow these steps:

  1. Melden Sie sich am Apple Developer Portal an.Login to the Apple Developer Portal.
  2. Navigieren Sie zum Abschnitt Certificates, IDs & Profiles (Zertifikate, IDs und Profile) und dann zum Abschnitt Profiles (Profile).Go to the Certificates, IDs & Profiles section, and then to the Profiles section.
  3. Klicken Sie auf die Schaltfläche + , wählen Sie iOS App Development (iOS-App-Entwicklung) und App Store aus, und klicken Sie anschließend auf Continue (Weiter).Click the + button, select iOS App Development and App Store, and click Continue.
  4. Wählen Sie die App-ID Ihrer App aus der Liste aus, und klicken Sie auf Weiter.Select your app's App ID from the list and click Continue.
  5. Wählen Sie ein Signaturzertifikat aus, und klicken Sie auf Weiter.Select a signing certificate and click Continue.
  6. Wählen Sie Geräte aus, die in dieses Profil eingeschlossen werden sollen, und klicken Sie auf Continue (Weiter).Select devices to include in this profile and click Continue.
  7. Geben Sie einen Bereitstellungsprofilnamen ein, und klicken Sie auf Generate (Generieren), um das Profil zu erstellen.Enter a Provisioning Profile Name and click Generate to generate the profile.
  8. Verwenden Sie die Tools der Apple-Kontoverwaltung von Xamarin, um das gerade erstellte Bereitstellungsprofil auf Ihren Mac herunterzuladen.Use Xamarin's Apple Account Management tools to download the newly-created provisioning profile to your Mac. Wenn Sie auf einem Mac arbeiten, können Sie das Bereitstellungsprofil auch direkt über das Apple Developer-Portal herunterladen und es durch einen Doppelklick installieren.If you're on a Mac, you can also download the provisioning profile directly from the Apple Developer Portal and double-click on it to install.

Eine ausführliche Anleitung finden Sie unter Manuelle Bereitstellung für Xamarin.iOS und App Store-Verteilung.For detailed instructions, see the Creating a distribution profile and Selecting a distribution profile in a Xamarin.iOS project.

Aktualisieren der Buildkonfiguration „Release“Update the Release build configuration

Neue Xamarin.iOS-Projekte richten automatisch die Buildkonfigurationen Debuggen und Release ein.New Xamarin.iOS projects automatically set up Debug and Release build configurations. Führen Sie die folgenden Schritte durch, um einen Releasebuild zu konfigurieren:To properly configure the Release build, follow these steps:

  1. Öffnen Sie im Lösungspaddie Datei Info.plist, die sich im iOS-Projekt befindet.From the Solution Pad, open Info.plist file located inside the iOS project.

  2. Stellen Sie sicher, dass Sie sich in Anwendungsansicht befinden.Make sure you're in Application view. Diese kann durch Klicken auf die Option in der unteren Navigationsleiste festgelegt werden.This can be set by clicking on the option in the bottom navigation bar.

  3. Wählen Sie die Option Manuelle Bereitstellung als Signierungsoption aus.Select Manual Provisioning as the Signing option. Speichern und schließen Sie die Datei.Save and close the file.

  4. Klicken Sie mit der rechten Maustaste auf den Projektnamen im Lösungspad, wählen Sie Optionen aus, und navigieren Sie dann zur Registerkarte iOS-Build.Right-click on the Project Name in the Solution Pad, select Options, and navigate to the iOS Build tab.

  5. Legen Sie Konfiguration auf Release und Plattform auf iPhone fest.Set Configuration to Release and Platform to iPhone.

  6. Wählen Sie ein SDK aus der SDK-Versionsliste aus, um den Build mit einem spezifischen iOS-SDK durchzuführen.To build with a specific iOS SDK, select it from the SDK version list. Behalten Sie andernfalls den Standardwert bei.Otherwise, leave this value at Default.

  7. Durch Verknüpfungen können Sie die Gesamtgröße Ihrer Anwendung senken, da nicht verwendeter Code ausgeschlossen wird.Linking reduces the overall size of your application by stripping out unused code.

    • In den meisten Fällen sollte das Linkerverhalten auf den Standardwert Nur Framework-SDKs verknüpfen festgelegt werden.In most cases, Linker Behavior should be set to the default value of Link Framework SDKs only.
    • Wenn Sie die Option Keine Verknüpfung verwenden, lehnt Apple möglicherweise die App aufgrund des Vorhandenseins nicht öffentlicher iOS-APIs in Xamarin.iOS ab, die mit der Option Nur Framework SDKs verknüpfen verknüpft sind.Using the Don't Link option can cause Apple to reject the app due to the presence of non-public iOS APIs in Xamarin.iOS that would be linked out with the Link Framework SDKs only option
    • Alle verknüpfen sollten mit Bedacht verwendet werden, da Code aus allen Assemblys im Projekt (einschließlich Bibliotheken von Drittanbietern) entfernt wird.Link All should be used with care as it will strip code from all assemblies in the project, including 3rd party libraries. Diese Option kann Code entfernen, den die Drittanbieterbibliothek nur über Reflexion verwendet, den der Linker nicht erkennen kann, da er statische Codeanalyse durchführt, um zu ermitteln, welcher Bibliothekscode verwendet wird.It can strip out code that the 3rd party library may only use via reflection that the linker cannot detect, as it does static code analysis to determine what library code is being used. Verwenden Sie die Option Alle verknüpfen umsichtig, da Sie möglicherweise einige Klassen und/oder Methoden manuell beibehalten müssen, um Laufzeitfehler aufgrund von fehlendem Code zu vermeiden.Use Link All with care as you may have to manually preserve some classes and/or methods to avoid runtime failures due to missing code.
    • Weitere Informationen finden Sie im Leitfaden zum Verknüpfen von Xamarin.iOS-Apps.For more information, refer to the Linking Xamarin.iOS apps guide.
  8. Wählen Sie für iOS 11 eine Gerätearchitektur aus, die ARM64 unterstützt.For iOS 11, select one of the device architectures that supports ARM64. Weitere Informationen zu Builds auf 64-Bit-iOS-Geräten finden Sie im Abschnitt Enabling 64 Bit Builds of Xamarin.iOS Apps (64-Bit-Builds in Xamarin.iOS-Apps aktiveren) der Dokumentation 32/64 bit Platform Considerations (Überlegungen zu 32-/64-Bit-Plattformen).For more information on building for 64-bit iOS devices, please see the Enabling 64-Bit Builds of Xamarin.iOS Apps section of the 32/64-bit platform considerations documentation.

  9. Mit dem LLVM-Compiler können Sie kürzeren und schnelleren Code erstellen.You may wish to use the LLVM compiler to build smaller and faster code. Diese Option führt jedoch zu längeren Kompilierzeiten.However, this option increases compile times.

  10. Aktivieren Sie PNG-Bilder optimieren, um die Größe Ihrer Anwendung weiter zu senken.Check Optimize PNG images to further decrease your application's size.

  11. Das Debuggen sollte nicht aktiviert sein, um den Build nicht unnötig zu vergrößern.Debugging should not be enabled, as it will make the build unnecessarily large.

  12. Entsprechend der Anforderungen Ihrer Anwendung möchten Sie möglicherweise auch den Typ der für die Internationalisierung verwendeten und eingerichteten Garbage Collection anpassen.Based on your application's needs, you may also wish to adjust the type of Garbage Collection being used and setup for Internationalization.

    Nachdem Sie die Optionen wie oben beschrieben festgelegt haben, sollten Ihre Buildeinstellungen in etwa wie folgt aussehen:After setting the options as described above, your build settings should look similar to this:

    iOS-BuildeinstellungeniOS Build settings

    Lesen Sie außerdem den Leitfaden Abläufe beim Erstellen von iOS-Builds, in dem Buildeinstellungen ausführlicher beschrieben werden.Also take a look at the iOS build mechanics guide, which further describes build settings.

  13. Navigieren Sie zur Registerkarte iOS-Bundlesignierung. Wenn die dort angezeigten Optionen nicht bearbeitet werden können, stellen Sie sicher, dass Manuelle Bereitstellung in der Datei Info.plist ausgewählt ist.Navigate to the iOS Bundle Signing tab. If the options here are not editable, ensure that Manual Provisioning is selected in the Info.plist file.

  14. Stellen Sie sicher, dass Konfiguration auf Release und Plattform auf iPhone festgelegt ist.Make sure that Configuration is set to Release and Platform is set to iPhone.

  15. Legen Sie Signierungsidentität auf Verteilung (Automatisch) fest.Set Signing Identity to Distribution (Automatic).

  16. Wählen Sie für Bereitstellungsprofil das oben erstellte App Store-Bereitstellungsprofil aus.For Provisioning Profile, select the App Store provisioning profile created above.

    Die Bundlesignierungsoptionen Ihres Projekts sollten jetzt in etwa wie folgt aussehen:Your project's bundle signing options should now look similar to this:

    iOS-BundlesignierungiOS Bundle Signing

  17. Klicken Sie auf OK, um die Änderungen an den Projekteigenschaften zu speichern.Click OK to save changes to the project properties.

Konfigurieren Ihrer App in iTunes ConnectConfigure your app in iTunes Connect

iTunes Connect ist eine Suite von webbasierten Tools, mit denen Sie Ihre iOS-Anwendungen im App Store verwalten können.iTunes Connect is a suite of web-based tools for managing your iOS applications on the App Store. Ihre Xamarin.iOS-Anwendung muss ordnungsgemäß in iTunes Connect konfiguriert werden, bevor sie zur Überprüfung an Apple gesendet und im App Store freigegeben werden kann.Your Xamarin.iOS application must be properly configured in iTunes Connect before it can be submitted to Apple for review and released on the App Store.

Im Leitfaden Konfigurieren einer App in iTunes Connect erfahren Sie, wie Sie dies durchführen können.To learn how to do this, read the Configuring an app in iTunes Connect guide.

Erstellen und Übermitteln Ihrer AppBuild and submit your app

Sobald Sie alle erforderlichen Buildeinstellungen vorgenommen haben und iTunes Connect auf Ihre Übermittlung wartet, können Sie Ihre App erstellen und an Apple übermitteln.With your build settings properly configured and iTunes Connect awaiting your submission, you can now build your app and submit it to Apple.

  1. Wählen Sie in Visual Studio für Mac die Buildkonfiguration Release und ein Gerät (keinen Simulator) aus, für das Sie den Build durchführen möchten.In Visual Studio for Mac, select the Release build configuration and a device (not a simulator) for which to build.

    Buildkonfiguration und PlattformauswahlBuild configuration and platform selection

  2. Wählen Sie aus dem Build-Menü die Option Archive for Publishing (Für Veröffentlichung archivieren):From the Build menu, select Archive for Publishing.

  3. Sobald das Archiv erstellt wurde, wird die Archivansicht angezeigt.Once the archive has been created, the Archives view will be displayed. Klicken Sie auf Signieren und verteilen..., um den Veröffentlichungs-Assistenten zu öffnen.Click Sign and Distribute... to open the publishing wizard.

    Screenshot: Schaltfläche „Signieren und verteilen“ in der ArchivansichtScreenshot of the Sign and Distribute button location in the Archives view.

    Hinweis

    Standardmäßig zeigt die Ansicht Archive nur die Archive für die geöffnete Projektmappe an.By default the Archives view only shows archives for the open solution. Aktivieren Sie das Kontrollkästchen Alle Archive anzeigen, um alle Projektmappen mit Archiven anzuzeigen.To see all solutions that have archives, check the Show all archives checkbox. Es empfiehlt sich, alle Archive beizubehalten, damit die darin enthaltenen Debuginformationen verwendet werden können, um Absturzberichte bei Bedarf durch Symbole zu ersetzen.It is a good idea to keep old archives so that the debug information they include can be used to symbolicate crash reports if necessary.

  4. Wählen Sie als Verteilungskanal den App Store aus.Select the App Store distribution channel. Klicken Sie auf Weiter.Click Next.

  5. Wählen Sie Upload als Ziel aus.Select Upload as the destination. Klicken Sie auf Weiter.Click Next.

  6. Wählen Sie im Fenster Bereitstellungsprofil Ihrer Signierungsidentität, App und Ihr Bereitstellungsprofil aus.In the Provisioning profile window, select your signing identity, app, and provisioning profile. Klicken Sie auf Weiter.Click Next.

    Screenshot: Seite des Assistenten des Bereitstellungsprofils mit einer gültigen Signierungsidentität, einer App und einer Auswahl des BereitstellungsprofilsScreenshot of the Provisioning profile wizard page showing a valid signing identity, app, and provisioning profile selection.

  7. Wählen Sie im Fenster App Store Connect information (Informationen zu App Store Connect) im Menü einen Apple ID-Benutzernamen aus, und geben Sie ein App-spezifisches Kennwort ein.In the App Store Connect information window, select an Apple ID username from the menu and enter an app-specific password. Klicken Sie auf Weiter.Click Next.

    Screenshot: Seite des Assistenten der App Store Connect-Informationen mit einem ausgewählten Apple-ID-BenutzernamenScreenshot of the App Store Connect information wizard page showing an Apple ID user name selected.

  8. Überprüfen Sie die Details Ihres Pakets, und klicken Sie auf Veröffentlichen.Verify the details of your package and click Publish. Nachdem Sie einen Speicherort für die IPA-Datei ausgewählt haben, wird Ihre App vom Assistenten in App Store Connect hochgeladen.After selecting a location to save the .ipa file, the wizard will upload your app to App Store Connect.

    Hinweis

    Es ist möglich, dass Apple Apps ablehnt, bei denen iTunesMetadata.plist in der IPA-Datei enthalten ist, wodurch es zu einem Fehler wie dem folgenden kommen kann:Apple may reject apps with the iTunesMetadata.plist included in the .ipa file, resulting in an error such as the following:

    ERROR: ERROR ITMS-90047: "Disallowed paths ( "iTunesMetadata.plist" ) found at: Payload/iPhoneApp1.app"

    In diesem Post auf Xamarin Forums wird beschrieben, wie Sie diesen Fehler umgehen können.For a workaround to this error, take a look at this post in the Xamarin Forums.

Status in iTunes ConnectiTunes Connect status

Melden Sie sich bei iTunes Connect an, und wählen Sie Ihre App aus, um den Status Ihrer Übermittlung einzusehen.To see the status of your app submission, log in to iTunes Connect and select your app. Der Status sollte zunächst Waiting for Review (Überprüfung ausstehend) lauten, vorrübergehend kann er aber auch Upload Received (Upload eingegangen) lauten, wenn die Übermittlung verarbeitet wird.The initial status should be Waiting For Review, though it may temporarily read Upload Received while it is being processed.

Warten auf ÜberprüfungWaiting For Review

Tipps und TricksTips and tricks

Anpassen des IPA-SpeicherortsCustomize the .ipa location

Die MSBuild-Eigenschaft IpaPackageDir ermöglicht das Anpassen des Ausgabespeicherorts der IPA-Datei.An MSBuild property, IpaPackageDir, makes it possible to customize the .ipa file output location. Wenn für einen benutzerdefinierten Speicherort IpaPackageDir festgelegt ist, wird die IPA-Datei an diesem Speicherort anstatt im Standardunterverzeichnis mit Zeitstempel abgelegt.If IpaPackageDir is set to a custom location, the .ipa file will be placed in that location instead of the default timestamped subdirectory. Dies kann beim Erstellen von automatisierten Builds nützlich sein, die für eine korrekte Ausführung einen bestimmten Verzeichnispfad benötigen, wie beispielsweise für fortlaufende Integrationsbuilds (CI, Continuous Integration).This can be useful when creating automated builds that rely on a specific directory path to work correctly, such as those used for Continuous Integration (CI) builds.

Die neue Eigenschaft kann auf unterschiedliche Weise verwendet werden.There are several possible ways to use the new property. Für eine Ausgabe der IPA-Datei in das frühere Standardverzeichnis (wie in Xamarin.iOS 9.6 und früher) können Sie die IpaPackageDir-Eigenschaft z.B. mit einer der folgenden Methoden auf $(OutputPath) festlegen.For example, to output the .ipa file to the old default directory (as in Xamarin.iOS 9.6 and lower), you can set the IpaPackageDir property to $(OutputPath) using one of the following approaches. Beide Methoden sind mit allen Unified API-Xamarin.iOS-Builds kompatibel. Hierzu zählen sowohl IDE-Builds als auch Befehlszeilenbuilds, die msbuild oder mdtool verwenden:Both approaches are compatible with all Unified API Xamarin.iOS builds, including IDE builds as well as command-line builds that use msbuild or mdtool:

  • Die erste Möglichkeit besteht darin, die IpaPackageDir-Eigenschaft in einem <PropertyGroup>-Element in einer MSBuild-Datei festzulegen.The first option is to set the IpaPackageDir property within a <PropertyGroup> element in an MSBuild file. Sie könnten z.B. die folgende <PropertyGroup> am Ende der CSPROJ-Datei des iOS-App-Projekts hinzufügen (unmittelbar vor dem </Project>-Endtag):For example, you could add the following <PropertyGroup> to the bottom of the iOS app project .csproj file (just before the closing </Project> tag):

    <PropertyGroup>
      <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    
  • Eine bessere Möglichkeit ist das Hinzufügen eines <IpaPackageDir>-Elements am Ende der vorhandenen <PropertyGroup>, die der beim Erstellen der IPA-Datei verwendeten Konfiguration entspricht.A better approach is to add a <IpaPackageDir> element to the bottom of the existing <PropertyGroup> that corresponds to the configuration used to build the .ipa file. Der Vorteil dieser Möglichkeit ist, dass das Projekt hier für die Kompatibilität mit einer zukünftigen Einstellung auf der Projekteigenschaftenseite der iOS-IPA-Optionen vorbereitet wird.This is better because it will prepare the project for future compatibility with a planned setting on the iOS IPA Options project properties page. Wenn Sie derzeit die Konfiguration Release|iPhone zum Erstellen der IPA-Datei verwenden, könnte die vollständige aktualisierte Eigenschaftengruppe etwa folgendermaßen aussehen:If you currently use the Release|iPhone configuration to build the .ipa file, the complete updated property group might look similar to the following:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone'">
       <Optimize>true</Optimize>
       <OutputPath>bin\iPhone\Release</OutputPath>
       <ErrorReport>prompt</ErrorReport>
       <WarningLevel>4</WarningLevel>
       <ConsolePause>false</ConsolePause>
       <CodesignKey>iPhone Developer</CodesignKey>
       <MtouchUseSGen>true</MtouchUseSGen>
       <MtouchUseRefCounting>true</MtouchUseRefCounting>
       <MtouchFloat32>true</MtouchFloat32>
       <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
       <MtouchLink>SdkOnly</MtouchLink>
       <MtouchArch>ARMv7, ARM64</MtouchArch>
       <MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
       <MtouchTlsProvider>Default</MtouchTlsProvider>
       <BuildIpa>true</BuildIpa>
       <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    

Eine alternative Methode für msbuild-Befehlszeilenbuilds ist das Hinzufügen eines /p:-Befehlszeilenarguments, um die IpaPackageDir-Eigenschaft festzulegen.An alternate technique for msbuild command-line builds is to add a /p: command line argument to set the IpaPackageDir property. Beachten Sie, dass msbuild in diesem Fall $()-Ausdrücke nicht erweitert, die in der Befehlszeile übergeben werden. Daher kann die $(OutputPath)-Syntax nicht verwendet werden.In this case note that msbuild does not expand $() expressions passed in on the command line, so it is not possible to use the $(OutputPath) syntax. Geben Sie stattdessen einen vollständigen Pfadnamen an.You must instead provide a full path name.

msbuild /p:Configuration="Release" /p:Platform="iPhone" /p:ServerAddress="192.168.1.3" /p:ServerUser="macuser" /p:IpaPackageDir="%USERPROFILE%\Builds" /t:Build SingleViewIphone1.sln

Unter Mac könnte es folgendermaßen aussehen:Or the following on Mac:

msbuild /p:Configuration="Release" /p:Platform="iPhone" /p:IpaPackageDir="$HOME/Builds" /t:Build SingleViewIphone1.sln

Nachdem Ihr Verteilungsbuild erstellt und archiviert wurde, können Sie nun Ihre Anwendung an iTunes Connect übermitteln.With your distribution build created and archived, you are now ready to submit your application to iTunes Connect.

ZusammenfassungSummary

In diesem Artikel wird die Konfiguration, das Erstellen und das Übermitteln einer iOS-App zum Veröffentlichen im App Store beschrieben.This article described how to configure, build, and submit an iOS app for release on the App Store.