Freigeben über


App Center Distribute – MAUI- und Xamarin-In-App-Updates

Von Bedeutung

Visual Studio App Center wurde am 31. März 2025 eingestellt, mit Ausnahme der Analyse- und Diagnosefeatures, die bis zum 30. Juni 2026 weiterhin unterstützt werden. Weitere Informationen

Mit App Center Distribute können Ihre Benutzer eine neue Version der App installieren, wenn Sie sie über Das App Center verteilen. Wenn eine neue Version der App verfügbar ist, zeigt das SDK den Benutzern ein Updatedialogfeld an, um die neue Version herunterzuladen oder zu verschieben. Nachdem sie sich für die Aktualisierung entschieden haben, beginnt das SDK mit dem Aktualisieren Ihrer Anwendung.

Warnung

Google Play betrachtet den In-App-Updatecode als böswilliges Verhalten, auch wenn er zur Laufzeit nicht verwendet wird. Verwenden Sie eine Variante des Distribute SDK wie in diesem Abschnitt beschrieben, bevor Sie Ihre App an Google Play übermitteln. Fehler beim Entfernen des In-App-Updatecodes können zu Nichtkompatibilität und Entfernung der App aus Google Play führen.

Hinweis

Wenn Sie automatisierte UI-Tests ausführen, blockieren aktivierte In-App-Updates Ihre automatisierten UI-Tests, da sie versuchen, sich beim App Center-Back-End zu authentifizieren. Es wird empfohlen, app Center-Verteilung für Ihre UI-Tests nicht zu aktivieren.

Hinzufügen von In-App-Updates zu Ihrer App

Folgen Sie dem Abschnitt " Erste Schritte ", wenn Sie das SDK in Ihrer Anwendung noch nicht eingerichtet und gestartet haben.

1. Hinzufügen des App Center-Moduls "Verteilen"

Das App Center SDK ist mit einem modularen Ansatz konzipiert – ein Entwickler muss nur die Module der Dienste integrieren, an denen sie interessiert sind.

Visual Studio für Mac

  • Öffnen Sie Visual Studio für Mac.
  • Klicken Sie auf "Datei>öffnen ", und wählen Sie Ihre Lösung aus.
  • Klicken Sie im Lösungsnavigator mit der rechten Maustaste auf den Abschnitt "Pakete ", und wählen Sie "NuGet-Pakete hinzufügen" aus.
  • Suchen Sie nach App Center, und installieren Sie App Center Verteilen.
  • Klicken Sie auf "Pakete hinzufügen".

Visual Studio für Windows

  • Öffnen Sie Visual Studio für Windows.
  • Klicken Sie auf "Datei>öffnen ", und wählen Sie Ihre Lösung aus.
  • Klicken Sie im Lösungsnavigator mit der rechten Maustaste auf Verweise , und wählen Sie "NuGet-Pakete verwalten" aus.
  • Suchen Sie nach App Center, und installieren Sie Microsoft.AppCenter.Distribute.

Paket-Manager-Konsole

  • Öffnen Sie die Konsole in Visual Studio. Wählen Sie dazu Tools>NuGet-Paket-Manager>Paket-Manager-Konsole aus.
  • Wenn Sie in Visual Studio für Mac arbeiten, stellen Sie sicher, dass Sie die NuGet-Paketverwaltungserweiterungen installiert haben. Wählen Sie dazu VisualStudio-Erweiterungen> aus, suchen Sie bei Bedarf nach NuGet, und installieren Sie sie.
  • Geben Sie den folgenden Befehl in die Konsole ein:
Install-Package Microsoft.AppCenter.Distribute

Hinweis

Wenn Sie das App Center SDK in einem tragbaren Projekt (z. B. Xamarin.Forms) verwenden, müssen Sie die Pakete in jedem der Projekte installieren: portabel, Android und iOS. Dazu sollten Sie jedes Unterprojekt öffnen und die entsprechenden Schritte ausführen, die in den Abschnitten Visual Studio für Mac oder Visual Studio für Windows beschrieben sind.

Hinweis

Android 10 oder höher hat Einschränkungen für die Startaktivität aus dem Hintergrund. Weitere Informationen zu Einschränkungen beim Starten von Aktivitäten aus dem Hintergrund finden Sie im Artikel.

Hinweis

Apps, die unter Android 10 (Go Edition) ausgeführt werden, können die SYSTEM_ALERT_WINDOW Berechtigung nicht erhalten. Weitere Informationen zu SYSTEM_ALERT_WINDOW auf Go-Geräten finden Sie im Artikel.

Hinweis

Ab Android 11 führen ACTION_MANAGE_OVERLAY_PERMISSION Intents den Benutzer immer zum Startbildschirm der Einstellungen, wo der Benutzer die SYSTEM_ALERT_WINDOW Berechtigungen für Apps erteilen oder widerrufen kann. Bitte lesen Sie den Artikel über Berechtigungsupdates in Android 11.

2. App Center Distribute starten

Konfigurieren Sie das App Center SDK, indem Sie wie im Handbuch "Erste Schritte" beschrieben aufrufenAppCenter.Start(...).

Öffnen Sie für Ihre iOS-Anwendung die AppDelegate.cs, und fügen Sie folgende Zeile vor dem Aufruf von LoadApplication hinzu:

Distribute.DontCheckForUpdatesInDebug();

Dieser Schritt ist unter Android nicht erforderlich, bei dem die Debugkonfiguration zur Laufzeit automatisch erkannt wird.

Um In-App-Updates für Debugbuilds unter Android zu aktivieren, rufen Sie die folgende Methode in der MainActivity.cs-Datei des Projekts, in der OnCreate Methode und vorher LoadApplicationauf.

Distribute.SetEnabledForDebuggableBuild(true);

Hinweis

Diese Methode wirkt sich nur auf Debugbuilds aus und hat keine Auswirkungen auf Releasebuilds.

2.3 [Nur für iOS] Ändern der Info.plist des Projekts

Das App Center SDK überprüft URL-Umleitungen an die Anwendung, um das Querladen zu vermeiden. Damit Updates, die über das Portal verteilt werden, ordnungsgemäß verarbeitet werden können, müssen Sie im CFBundleURLTypes Dateiabschnitt Info.plist angebenCFBundleURLSchemes:

Hinweis

Info.plist, oder eine Informations-Eigenschaftslistendatei, ist eine strukturierte Textdatei, die wichtige Konfigurationsdaten für eine gebündelte ausführbare Datei enthält. Weitere Informationen hierzu finden Sie in der Apple-Entwicklerdokumentation.

  1. Fügen Sie einen neuen Schlüssel für URL types oder CFBundleURLTypes in Ihre Info.plist-Datei hinzu, falls Xcode Ihre Info.plist als Quellcode anzeigt.
  2. Ändern Sie den Schlüssel des ersten untergeordneten Elements in URL Schemes oder CFBundleURLSchemes.
  3. Geben Sie appcenter-${APP_SECRET} als URL-Schema ein und ersetzen Sie ${APP_SECRET} durch den App-Geheimschlüssel Ihrer App.

Tipp

Wenn Sie überprüfen möchten, ob Sie die Info.plist richtig geändert haben, öffnen Sie sie als Quellcode. Er muss den folgenden Eintrag mit Ihrem App Secret anstelle von ${APP_SECRET} enthalten:

<key>CFBundleURLTypes</key>
  <array>
      <dict>
          <key>CFBundleURLSchemes</key>
          <array>
              <string>appcenter-${APP_SECRET}</string>
          </array>
      </dict>
  </array>

Entfernen von In-App-Updates für Google Play-Builds

Google Play betrachtet den In-App-Updatecode als böswilliges Verhalten, auch wenn er zur Laufzeit nicht verwendet wird. Fehler beim Entfernen des In-App-Updatecodes können zu Nichtkompatibilität und Entfernung der App aus Google Play führen. Um dies zu vereinfachen, stellen wir die Version des App Center Distribute SDK mit stubbed-APIs bereit, sodass die einzige Änderung für Sie ein Abhängigkeitstausch ist.

  1. Fügen Sie eine neue Buildkonfiguration namens GooglePlay für Ihre Xamarin.Android- und gemeinsamen Projekte hinzu. Stellen Sie sicher, dass die Projektbuildkonfiguration ordnungsgemäß der entsprechenden Lösungskonfiguration zugeordnet ist. Weitere Details finden Sie unter Visual Studio oder Visual Studio für Mac .

  2. Öffnen Sie Xamarin.Android und gemeinsame Projekte .csproj in einem beliebigen Texteditor, und verschieben Sie den Verteilungsverweis in die bedingte Elementgruppe.

    <ItemGroup Condition=" '$(Configuration)' != 'GooglePlay' ">
        <PackageReference Include="Microsoft.AppCenter.Distribute" Version="3.3.0" />
    </ItemGroup>
    <ItemGroup Condition=" '$(Configuration)' == 'GooglePlay' ">
        <PackageReference Include="Microsoft.AppCenter.DistributePlay" Version="3.3.0" />
    </ItemGroup>
    

    Hinweis

    Wenn Sie zum Verwalten von NuGet-Verweisen altespackages.config Format verwenden, können Sie zu einem PackageReference-Format migrieren, indem Sie die Migrationsanweisungen befolgen.

  3. Speichern Sie Ihre Änderungen, und stellen Sie NuGet-Pakete wieder her.

  4. Sie können die Konfiguration in der Befehlsleiste oben in der IDE ändern.

Private Verteilergruppe verwenden

Standardmäßig verwendet "Verteilen" eine öffentliche Verteilergruppe. Wenn Sie eine private Verteilergruppe verwenden möchten, müssen Sie sie explizit über UpdateTrack festlegen.

Distribute.UpdateTrack = UpdateTrack.Private;

Hinweis

Der Standardwert ist UpdateTrack.Public. Diese Eigenschaft kann nur vor dem AppCenter.Start Methodenaufruf aktualisiert werden. Änderungen an der Aktualisierungsspur werden nicht beibehalten, wenn der Anwendungsprozess neu gestartet wird. Wenn die Eigenschaft also nicht immer vor dem AppCenter.Start Aufruf aktualisiert wird, ist sie standardmäßig öffentlich.

Nach diesem Aufruf wird ein Browserfenster geöffnet, um den Benutzer zu authentifizieren. Alle nachfolgenden Updateprüfungen erhalten die neueste Version auf dem privaten Track. Die Updatespur wird im SDK nicht für app-übergreifende Starts beibehalten.

Wenn sich ein Benutzer auf der privaten Spur befindet, bedeutet dies, dass er nach der erfolgreichen Authentifizierung die neueste Version von allen privaten Verteilergruppen erhält, in denen er Mitglied ist. Wenn sich ein Benutzer auf der öffentlichen Spur befindet, bedeutet dies, dass er die neueste Version einer beliebigen öffentlichen Verteilergruppe erhält.

Automatische Überprüfung auf Update deaktivieren

Standardmäßig sucht das SDK automatisch nach neuen Versionen:

  • Wenn die Anwendung gestartet wird.
  • Wenn die Anwendung in den Hintergrund wechselt und dann wieder in den Vordergrund zurückkehrt.
  • Wenn Sie das Modul "Verteilen" aktivieren, wenn das Modul zuvor deaktiviert wurde.

Wenn Sie manuell nach neuen Versionen suchen möchten, können Sie die automatische Überprüfung auf Updates deaktivieren. Rufen Sie dazu vor dem SDK-Start die folgende Methode auf:

Distribute.DisableAutomaticCheckForUpdate();

Hinweis

Diese Methode muss vor dem AppCenter.Start Methodenaufruf aufgerufen werden.

Anschließend können Sie die CheckForUpdate API verwenden, die im folgenden Abschnitt beschrieben wird.

Manuelles Überprüfen auf Update

Distribute.CheckForUpdate();

Hinweis

Eine manuelle Überprüfung auf Updateanrufe funktioniert auch dann, wenn automatische Updates aktiviert sind. Eine manuelle Überprüfung auf Aktualisierung wird ignoriert, wenn bereits eine andere Überprüfung durchgeführt wird. Die manuelle Überprüfung auf Das Update wird nicht verarbeitet, wenn der Benutzer Updates verschoben hat (es sei denn, die neueste Version ist ein obligatorisches Update).

Anpassen oder Lokalisieren des In-App-Aktualisierungsdialogfelds

1. Anpassen oder Lokalisieren von Text

Sie können ganz einfach eigene Ressourcenzeichenfolgen bereitstellen, wenn Sie den im Aktualisierungsdialogfeld angezeigten Text lokalisieren möchten. Sehen Sie sich die Zeichenfolgendateien für iOS in dieser Ressourcendatei und die für Android in dieser Ressourcendatei an. Verwenden Sie denselben Zeichenfolgennamen/Schlüssel, und geben Sie den lokalisierten Wert an, der im Dialogfeld in Ihren eigenen App-Ressourcendateien widergespiegelt werden soll.

2. Anpassen des Aktualisierungsdialogfelds

Sie können die Darstellung des Standardmäßigen Aktualisierungsdialogfelds anpassen, indem Sie den ReleaseAvailable Rückruf implementieren. Sie müssen die Callback-Funktion registrieren, bevor Sie AppCenter.Start aufrufen, wie im folgenden Beispiel gezeigt:

// In this example OnReleaseAvailable is a method name in same class
Distribute.ReleaseAvailable = OnReleaseAvailable;
AppCenter.Start(...);

Hier ist ein Beispiel für die Callback-Implementierung, die das SDK-Dialogfeld durch ein benutzerdefiniertes ersetzt:

bool OnReleaseAvailable(ReleaseDetails releaseDetails)
{
    // Look at releaseDetails public properties to get version information, release notes text or release notes URL
    string versionName = releaseDetails.ShortVersion;
    string versionCodeOrBuildNumber = releaseDetails.Version;
    string releaseNotes = releaseDetails.ReleaseNotes;
    Uri releaseNotesUrl = releaseDetails.ReleaseNotesUrl;

    // custom dialog
    var title = "Version " + versionName + " available!";
    Task answer;

    // On mandatory update, user can't postpone
    if (releaseDetails.MandatoryUpdate)
    {
        answer = Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install");
    }
    else
    {
        answer = Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install", "Maybe tomorrow...");
    }
    answer.ContinueWith((task) =>
    {
        // If mandatory or if answer was positive
        if (releaseDetails.MandatoryUpdate || (task as Task<bool>).Result)
        {
            // Notify SDK that user selected update
            Distribute.NotifyUpdateAction(UpdateAction.Update);
        }
        else
        {
            // Notify SDK that user selected postpone (for 1 day)
            // This method call is ignored by the SDK if the update is mandatory
            Distribute.NotifyUpdateAction(UpdateAction.Postpone);
        }
    });

    // Return true if you're using your own dialog, false otherwise
    return true;
}

Implementierungshinweise für Xamarin.Android:

Wie im Beispiel gezeigt, müssen Sie entweder Distribute.NotifyUpdateAction(UpdateAction.UPDATE); oder Distribute.NotifyUpdateAction(UpdateAction.POSTPONE); aufrufen, wenn Ihr Callback true zurückgibt.

Wenn Sie NotifyUpdateAction nicht aufrufen, wird das Callback bei jeder Aktivitätsänderung wiederholt.

Der Rückruf kann erneut mit derselben Version aufgerufen werden, wenn sich die Aktivität ändert, bevor die Benutzeraktion an das SDK benachrichtigt wird.

Dieses Verhalten ist erforderlich, um die folgenden Szenarien abzudecken:

  • Ihre Anwendung wird in den Hintergrund verschoben (wie durch Drücken von Home) und dann in einer anderen Aktivität wieder aufgenommen.
  • Ihre Aktivität wird von einem anderen abgedeckt, ohne die Anwendung zu verlassen (z. B. durch Klicken auf einige Benachrichtigungen).
  • Andere ähnliche Szenarien.

In diesem Fall kann die Aktivität, die das Dialogfeld hostet, ohne Benutzerinteraktion ersetzt werden. Daher ruft das SDK den Listener erneut auf, damit Sie das benutzerdefinierte Dialogfeld wiederherstellen können.

3. Ausführen von Code, wenn keine Updates gefunden werden

In Fällen, in dem das SDK nach Updates sucht und keine updates findet, die neuer verfügbar sind als die aktuell verwendete, wird ein NoReleaseAvailable Rückruf aufgerufen. Auf diese Weise können Sie benutzerdefinierten Code in solchen Szenarien ausführen. Sie müssen den Rückruf registrieren, bevor Sie AppCenter.Start aufrufen, wie im folgenden Beispiel gezeigt:

// In this example OnNoReleaseAvailable is a method name in same class
Distribute.NoReleaseAvailable = OnNoReleaseAvailable;
AppCenter.Start(...);
void OnNoReleaseAvailable()
{
    AppCenterLog.Info(LogTag, "No release available callback invoked.");
}

Aktivieren oder Deaktivieren von App Center Distribute während der Ausführung

Sie können App Center Distribution während der Laufzeit aktivieren und deaktivieren. Wenn Sie es deaktivieren, stellt das SDK keine In-App-Updatefunktionen bereit, Sie können den Verteilungsdienst aber weiterhin im App Center-Portal verwenden.

Distribute.SetEnabledAsync(false);

Um App Center Distribute erneut zu aktivieren, verwenden Sie dieselbe API, übergeben true sie aber als Parameter.

Distribute.SetEnabledAsync(true);

Sie müssen diesen Aufruf nicht warten, um andere API-Aufrufe (z IsEnabledAsync. B. ) konsistent zu machen.

Der Zustand wird im Speicher des Geräts über Anwendungsstarts hinweg beibehalten.

Hinweis

Diese Methode darf nur verwendet werden, nachdem Distribute gestartet wurde.

Überprüfen, ob "App Center Verteilen" aktiviert ist

Sie können auch überprüfen, ob App Center Verteilen aktiviert ist oder nicht:

bool enabled = await Distribute.IsEnabledAsync();

Hinweis

Diese Methode darf nur verwendet werden, nachdem Distribute gestartet wurde; vor dem Start wird aber immer false zurückgegeben.

Führen Sie die Bereinigung direkt vor dem Schließen der App für das Update aus (nur iOS)

Registrieren Sie den Rückruf wie im folgenden Beispiel gezeigt:

// In this example, OnWillExitApp is a method name in same class
Distribute.WillExitApp = OnWillExitApp;
void OnWillExitApp()
{
    // Perform clean up here
}

Daraufhin wird OnWillExitApp() aufgerufen, wenn "Verteilen" geschlossen werden soll.

Wie funktionieren In-App-Updates?

Hinweis

Damit In-App-Updates funktionieren, sollte ein App-Build über den Link heruntergeladen werden. Sie funktioniert nicht, wenn sie über eine IDE oder manuell installiert wurde.

Das Feature für In-App-Updates funktioniert wie folgt:

  1. Dieses Feature funktioniert nur mit RELEASE-Builds (standardmäßig), die über den App Center Distribute-Dienst verteilt werden. Es funktioniert nicht, wenn das iOS-Feature für geführten Zugriff aktiviert ist.

  2. Nachdem Sie das SDK integriert haben, erstellen Sie die Version Ihrer App, und laden Sie sie in das App Center hoch, werden Benutzer in dieser Verteilergruppe per E-Mail über die neue Version benachrichtigt.

  3. Wenn jeder Benutzer den Link in seiner E-Mail öffnet, wird die Anwendung auf ihrem Gerät installiert. Es ist wichtig, dass sie den E-Mail-Link zum Installieren verwenden . Wir unterstützen das Querladen nicht. Wenn eine Anwendung über den Link heruntergeladen wird, speichert das SDK wichtige Informationen aus Cookies, um zu einem späteren Zeitpunkt nach Updates zu suchen, andernfalls verfügt das SDK nicht über diese wichtigen Informationen.

  4. Wenn die Anwendung den Titel auf "Privat" festlegt, wird ein Browser geöffnet, um den Benutzer zu authentifizieren und um In-App-Aktualisierungen zu ermöglichen. Der Browser wird nicht erneut geöffnet, solange die Authentifizierungsinformationen gültig bleiben, selbst wenn man wieder zum öffentlichen Track wechselt und später erneut privat geht. Wenn die Browserauthentifizierung erfolgreich ist, wird der Benutzer automatisch zurück zur Anwendung umgeleitet. Wenn die Spur öffentlich ist (dies ist die Standardeinstellung), erfolgt der nächste Schritt direkt.

    • Unter iOS 9 und 10 wird eine Instanz von SFSafariViewController innerhalb der App geöffnet, um den Benutzer zu authentifizieren. Sie wird automatisch geschlossen, nachdem die Authentifizierung erfolgreich war.
    • In iOS 11 ähnelt die Benutzererfahrung der von iOS 10, aber iOS 11 wird den Benutzer um Erlaubnis bitten, auf die Anmeldeinformationen zuzugreifen. Dies ist ein Dialogfeld auf Systemebene, das nicht angepasst werden kann. Wenn der Benutzer das Dialogfeld abbricht, kann er weiterhin die getestete Version verwenden, aber er erhält keine In-App-Updates. Sie werden aufgefordert, erneut auf Anmeldeinformationen zuzugreifen, wenn sie die App das nächste Mal starten.
  5. Eine neue Version der App zeigt das Dialogfeld "In-App-Aktualisierung" an, in dem Benutzer aufgefordert werden, Ihre Anwendung zu aktualisieren, falls dies der Vorgang ist:

    • Ios:

      • ein höherer Wert von CFBundleShortVersionString oder
      • ein gleicher Wert von CFBundleShortVersionString , aber ein höherer Wert von CFBundleVersion.
      • Die Versionen sind identisch, aber der eindeutige Buildbezeichner unterscheidet sich.
    • Android:

      • ein höherer Wert von versionCode oder
      • ein gleicher Wert von versionCode , aber ein anderer Wert von versionName.

Tipp

Wenn Sie das gleiche apk/ipa ein zweites Mal hochladen, wird das Dialogfeld NICHT angezeigt, da die Binärdateien identisch sind. Wenn Sie unter iOS einen neuen Build mit denselben Versionseigenschaften hochladen, wird das Updatedialogfeld angezeigt. Der Grund dafür ist, dass es sich um eine andere Binärdatei handelt. Unter Android gelten Binärdateien als identisch, wenn beide Versionseigenschaften identisch sind.

Wie teste ich In-App-Updates?

Sie müssen Releasebuilds (die das Verteilungsmodul des App Center SDK verwenden) in das App Center-Portal hochladen, um In-App-Updates zu testen und die Versionsnummern jedes Mal zu erhöhen.

  1. Erstellen Sie Ihre App im App Center-Portal, sofern noch nicht geschehen.
  2. Erstellen Sie eine neue Verteilergruppe, und nennen Sie sie, damit Sie erkennen können, dass sie zum Testen des In-App-Updatefeatures vorgesehen ist.
  3. Fügen Sie sich selbst hinzu (oder alle Personen, die Sie zum Testen des In-App-Updates hinzufügen möchten). Verwenden Sie hierfür eine neue oder weggeworfene E-Mail-Adresse, die für diese App im App Center nicht verwendet wurde. Dadurch wird sichergestellt, dass Ihre Erfahrung den echten Testern nahe kommt.
  4. Erstellen Sie einen neuen Build Ihrer App, der App Center Distribute enthält und die die unten beschriebene Setuplogik enthält. Wenn die Gruppe privat ist, vergessen Sie nicht, den privaten In-App-Update-Track festzulegen, bevor Sie die UpdateTrack Eigenschaft verwenden.
  5. Klicken Sie im Portal auf die Schaltfläche " Neue Version verteilen ", und laden Sie Ihren Build der App hoch.
  6. Nachdem der Upload abgeschlossen ist, klicken Sie auf "Weiter ", und wählen Sie die Verteilergruppe aus, die Sie als Ziel dieser App-Verteilung erstellt haben.
  7. Überprüfen Sie die Verteilung, und verteilen Sie den Build an Ihre In-App-Testgruppe.
  8. Personen in dieser Gruppe erhalten eine Einladung, Tester der App zu sein. Sobald sie die Einladung angenommen haben, können sie die App über das App Center-Portal von ihrem mobilen Gerät herunterladen. Nachdem sie In-App-Updates installiert haben, können Sie In-App-Updates testen.
  9. Heben Sie die Version Ihrer App (CFBundleShortVersionString oder CFBundleVersion für iOS, versionCode für Android) auf.
  10. Erstellen Sie die Releaseversion Ihrer App, und laden Sie einen neuen Build Ihrer App wie im vorherigen Schritt hoch, und verteilen Sie dies an die zuvor erstellte Verteilergruppe . Mitglieder der Verteilergruppe werden beim nächsten Start der App zur Eingabe einer neuen Version aufgefordert.

Tipp

Sehen Sie sich die Informationen zur Nutzung von App Center Distribute an, um ausführlichere Informationen zu Verteilergruppen usw. zu erhalten. Obwohl es möglich ist, App Center Distribute zu verwenden, um eine neue Version Ihrer App zu verteilen, ohne Code hinzuzufügen, führt das Hinzufügen von App Center Distribute zum Code Ihrer App zu einer nahtloseren Oberfläche für Ihre Tester und Benutzer, wenn sie die In-App-Updateerfahrung erhalten.

Deaktivieren der automatischen Weiterleitung der Methoden des Anwendungsdelegats an App Center-Dienste

App Center verwendet swizzling, um die Methoden Ihres Anwendungsdelegats automatisch an App Center-Dienste weiterzuleiten, um die SDK-Integration zu verbessern. Es besteht die Möglichkeit von Konflikten mit anderen Drittanbieterbibliotheken oder dem Anwendungsdelegaten selbst. In diesem Fall sollten Sie die App Center-Anwendungsdelegatweiterleitung für alle App Center-Dienste deaktivieren, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie die Datei "Info.plist " des Projekts.
  2. Fügen Sie AppCenterAppDelegateForwarderEnabled als Schlüssel hinzu und setzen Sie den Wert auf 0. Dadurch wird die Weiterleitung von Anwendungsdelegats für alle App Center-Dienste deaktiviert.
  3. Fügen Sie das OpenUrl Callback in Ihre AppDelegate.cs Datei hinzu.
public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
    Distribute.OpenUrl(url);
    return true;
}