Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Hinweis
Bei der Verwendung von In-App-Updates sind einige Dinge zu berücksichtigen:
- Wenn Sie Ihre App im App Store veröffentlicht haben, werden In-App-Updates deaktiviert.
- 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 Verteilen für Ihr UI-Testziel nicht zu aktivieren.
Hinweis
In der 4.0.0
Version des App Center wurden bahnbrechende Änderungen eingeführt. Folgen Sie dem Abschnitt "Migrieren zu App Center SDK 4.0.0" und höher , um App Center aus früheren Versionen zu migrieren.
Von Bedeutung
Das App Center SDK unterstützt nicht mehrere Fenster-Apps, die in iOS 13 eingeführt wurden.
Hinzufügen von In-App-Updates zu Ihrer App
Folgen Sie dem Abschnitt " Erste Schritte ", wenn Sie das SDK in Ihrer Anwendung nicht konfiguriert haben.
1. Hinzufügen des App Center-Moduls "Verteilen"
Das App Center SDK ist mit einem modularen Ansatz konzipiert – Sie müssen nur die Module der Dienste integrieren, an denen Sie interessiert sind.
Integration über Cocoapods
Wenn Sie App Center über Cocoapods in Ihre App integrieren, fügen Sie die folgende Abhängigkeit zu Ihrer Podfile hinzu und führen Sie pod install
aus.
pod 'AppCenter/Distribute'
Integration über Karthage
Fügen Sie die folgende Abhängigkeit zu Ihrer
Cartfile
hinzu, um App Center Distribute hinzuzufügen.# Use the following line to get the latest version of App Center github "microsoft/appcenter-sdk-apple"
# Use the following line to get the specific version of App Center github "microsoft/appcenter-sdk-apple" ~> X.X.X
Führen Sie
carthage update
aus.Öffnen Sie die Registerkarte " Allgemeine Einstellungen" des Anwendungsziels. Ziehen Sie die Datei "AppCenterDistribute.framework " aus dem Ordner "Carthage/Build/iOS " in den Abschnitt "Linked Frameworks and Libraries " in XCode.
Ziehen Sie appCenterDistributeResources.bundle aus AppCenterDistribute.framework in den Project Navigator von XCode.
Es wird ein Dialogfeld angezeigt. Stellen Sie sicher, dass Ihr App-Ziel überprüft ist. Klicken Sie auf Fertig stellen.
Integration über Swift Package Manager
- Klicken Sie im Menü „Xcode“ auf „Datei > Swift-Pakete > Paketabhängigkeit hinzufügen“.
- Geben Sie im daraufhin angezeigten Dialogfeld die Repository-URL ein:
https://github.com/microsoft/appcenter-sdk-apple.git
. - Wählen Sie in Version die Option Bis zur nächsten Hauptversion aus und nehmen Sie die Standardoption.
- Wählen Sie in der Spalte "Paketprodukt" die AppCenterDistribute aus.
Integration durch Kopieren der Binärdateien in Ihr Projekt
Wenn Sie Cocoapods nicht verwenden möchten, können Sie die Module integrieren, indem Sie die Binärdateien in Ihr Projekt kopieren. Führen Sie dafür die folgenden Schritte aus:
Hinweis
App Center SDK unterstützt die Verwendung von XCframework
. Wenn Sie XCframeworks in Ihr Projekt integrieren möchten, laden Sie die AppCenter-SDK-Apple-XCFramework.zip von der Veröffentlichungsseite herunter, und entpacken Sie es. Resultierende Ordnerinhalte sind nicht plattformspezifisch, sondern enthält XCframeworks für jedes Modul. Sie können auf die gleiche Weise wie übliche Frameworks integriert werden, wie unten beschrieben.
Laden Sie die App Center SDK-Frameworks herunter, die als ZIP-Datei bereitgestellt werden.
Entpacken Sie die Datei, und Sie sehen einen Ordner namens "AppCenter-SDK-Apple/iOS ", der unterschiedliche Frameworks für jeden App Center-Dienst enthält. Das aufgerufene
AppCenter
Framework ist im Projekt erforderlich, da es Code enthält, der zwischen den verschiedenen Modulen gemeinsam verwendet wird.[Optional] Erstellen Sie ein Unterverzeichnis für Drittanbieterbibliotheken.
- Als bewährte Methode befinden sich Drittanbieterbibliotheken in der Regel innerhalb eines Unterverzeichnisses, häufig als "Vendor" bezeichnet. Wenn Ihr Projekt nicht mit einem Unterverzeichnis für Bibliotheken organisiert ist, erstellen Sie jetzt ein Lieferantenunterverzeichnis .
- Erstellen Sie eine Gruppe namens "Vendor " innerhalb Ihres Xcode-Projekts, um die Dateistruktur auf dem Datenträger nachzuahmen.
Öffnen Sie Finder, und kopieren Sie den entzippten AppCenter-SDK-Apple/iOS-Ordner in den Ordner Ihres Projekts an der gewünschten Position.
Fügen Sie das SDK-Framework dem Projekt in Xcode hinzu:
- Stellen Sie sicher, dass der Project Navigator sichtbar ist (⌘+1).
- Ziehen Sie jetzt AppCenter.framework, AppCenterDistribute.framework und AppCenterDistributeResources.bundle aus dem Finder (die im Ordner "Vendor ") in den Project Navigator von Xcode. AppCenter.framework ist erforderlich, um das SDK zu starten. Stellen Sie sicher, dass es zu Ihrem Projekt hinzugefügt wird, andernfalls funktionieren die anderen Module nicht, und Ihr Projekt wird nicht erfolgreich kompiliert.
- Es wird ein Dialogfeld angezeigt. Stellen Sie sicher, dass Ihr App-Ziel überprüft ist. Klicken Sie auf Fertig stellen.
2. App Center Distribute starten
App Center verwendet nur die spezifischen Module, die Sie in Ihrer Anwendung aufrufen. Sie müssen jede dieser Elemente explizit aufrufen, wenn Sie das SDK starten.
2.1 Hinzufügen des Imports für App Center Distribute
Öffnen Sie die Datei "AppDelegate.m " des Projekts in Objective-C- oder AppDelegate.swift-Datei in Swift, und fügen Sie die folgenden Importanweisungen hinzu:
@import AppCenter;
@import AppCenterDistribute;
import AppCenter
import AppCenterDistribute
2.2 Hinzufügen der start:withServices:
Methode
Fügen Sie Distribute
Ihrer start:withServices:
Methode hinzu, um den App Center-Verteilungsdienst zu starten.
Fügen Sie die folgende Zeile ein, um das SDK in der AppDelegate.m-Klasse des Projekts für Objective-C oder AppDelegate.swift-Klasse für Swift in der didFinishLaunchingWithOptions
Methode zu starten.
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACDistribute class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Distribute.self])
Stellen Sie sicher, dass Sie im obigen Codebeispiel durch Ihren App-Geheimschlüssel ersetzt {Your App Secret}
haben. Sehen Sie sich auch den Abschnitt " Erste Schritte " an, wenn Sie das SDK in Ihrer Anwendung nicht konfiguriert haben.
2.3 Ändern der Info.plist des Projekts
- Fügen Sie in der Datei "Info.plist " des Projekts einen neuen Schlüssel
URL types
hinzu, indem Sie oben auf die Schaltfläche "+" neben "Informationseigenschaftsliste" klicken. Wenn Xcode Ihre Info.plist als Quellcode anzeigt, lesen Sie den folgenden Tipp. - Ändern Sie den Schlüsseltyp in "Array".
- Fügen Sie dem Array (
Item 0
) einen neuen Eintrag hinzu, und ändern Sie den Typ in "Wörterbuch". - Fügen Sie unter
Item 0
" einenURL Schemes
Schlüssel hinzu, und ändern Sie den Typ in "Array". - Fügen Sie unter Ihrem
URL Schemes
Schlüssel einen neuen Eintrag (Item 0
) hinzu. - Ändern Sie unter
URL Schemes
>Item 0
den Wert inappcenter-{APP_SECRET}
und ersetzen Sie{APP_SECRET}
durch das App-Secret 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>
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.
MSACDistribute.updateTrack = MSACUpdateTrackPrivate;
Distribute.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.
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:
[MSACDistribute disableAutomaticCheckForUpdate];
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
[MSACDistribute checkForUpdate];
Distribute.checkForUpdate()
Dadurch wird eine Anforderung an das App Center gesendet und ein Updatedialogfeld angezeigt, falls eine neue Version verfügbar ist.
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 diese Zeichenfolgendatei an. Verwenden Sie denselben Zeichenfolgennamen/Schlüssel, und geben Sie den lokalisierten Wert an, der im Dialogfeld in Ihren eigenen App-Zeichenfolgendateien widerzuspiegeln ist.
2. Anpassen des Aktualisierungsdialogfelds
Sie können die Darstellung des Standardaktualisierungsdialogfelds anpassen, indem Sie das DistributeDelegate
Protokoll implementieren. Sie müssen den Delegaten registrieren, bevor Sie das SDK starten, wie im folgenden Beispiel gezeigt:
[MSACDistribute setDelegate:self];
Distribute.delegate = self;
Hier ist ein Beispiel für die Delegatenimplementierung, die das SDK-Dialogfeld durch ein benutzerdefiniertes ersetzt:
- (BOOL)distribute:(MSACDistribute *)distribute releaseAvailableWithDetails:(MSACReleaseDetails *)details {
// Your code to present your UI to the user, e.g. an UIAlertController.
UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:@"Update available."
message:@"Do you want to update?"
preferredStyle:UIAlertControllerStyleAlert];
[alertController
addAction:[UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
[MSACDistribute notifyUpdateAction:MSACUpdateActionUpdate];
}]];
[alertController
addAction:[UIAlertAction actionWithTitle:@"Postpone"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
[MSACDistribute notifyUpdateAction:MSACUpdateActionPostpone];
}]];
// Show the alert controller.
[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];
return YES;
}
func distribute(_ distribute: Distribute, releaseAvailableWith details: ReleaseDetails) -> Bool {
// Your code to present your UI to the user, e.g. an UIAlertController.
let alertController = UIAlertController(title: "Update available.",
message: "Do you want to update?",
preferredStyle:.alert)
alertController.addAction(UIAlertAction(title: "Update", style: .cancel) {_ in
Distribute.notify(.update)
})
alertController.addAction(UIAlertAction(title: "Postpone", style: .default) {_ in
Distribute.notify(.postpone)
})
// Show the alert controller.
self.window?.rootViewController?.present(alertController, animated: true)
return true;
}
Falls Sie in der obigen Methode zurückkehren YES
/true
, sollte Ihre App die Auswahl des Benutzers abrufen und das SDK mit dem Ergebnis mithilfe der folgenden API melden.
// Depending on the user's choice, call notifyUpdateAction: with the right value.
[MSACDistribute notifyUpdateAction:MSACUpdateActionUpdate];
[MSACDistribute notifyUpdateAction:MSACUpdateActionPostpone];
// Depending on the user's choice, call notify() with the right value.
Distribute.notify(.update);
Distribute.notify(.postpone);
Wenn Sie die oben genannte Methode nicht aufrufen, wird die releaseAvailableWithDetails:
--Methode immer wiederholt, wenn Ihre App in den Vordergrund wechselt.
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 distributeNoReleaseAvailable:
Rückruf von MSACDistributeDelegate
Stellvertretungen aufgerufen. Auf diese Weise können Sie benutzerdefinierten Code in solchen Szenarien ausführen.
Im Folgenden finden Sie Beispiele, in denen gezeigt wird, wie die Benachrichtigungs-UI angezeigt wird, wenn keine Aktualisierungen gefunden werden:
- (void)distributeNoReleaseAvailable:(MSACDistribute *)distribute {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil
message:NSLocalizedString(@"No updates available", nil)
preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]];
[self.window.rootViewController presentViewController:alert animated:YES completion:nil];
}
func distributeNoReleaseAvailable(_ distribute: Distribute) {
let alert = UIAlertController(title: nil, message: "No updates available", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.window?.rootViewController?.present(alert, animated: true)
}
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.
[MSACDistribute setEnabled:NO];
Distribute.enabled = false
Um App Center Distribute erneut zu aktivieren, verwenden Sie dieselbe API, übergeben YES
/true
sie aber als Parameter.
[MSACDistribute setEnabled:YES];
Distribute.enabled = true
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 = [MSACDistribute isEnabled];
var enabled = Distribute.enabled
Hinweis
Diese Methode darf nur verwendet werden, nachdem Distribute
gestartet wurde; vor dem Start wird aber immer false
zurückgegeben.
App Center-Verteilung während der Entwicklung nicht initialisieren
Im privaten Modus öffnet App Center Distribute die Benutzeroberfläche/den Browser beim Starten der Anwendung. Obwohl dies ein erwartetes Verhalten für Ihre Endbenutzer ist, kann es für Sie während der Entwicklungsphase Ihrer Anwendung störend sein. Es wird nicht empfohlen, die Initialisierung für Ihre DEBUG
Konfiguration zu initialisierenDistribute
.
#if DEBUG
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
#else
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class], [MSACDistribute class]]];
#endif
#if DEBUG
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self])
#else
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self, Distribute.self])
#endif
Durchführen einer Bereinigung direkt vor dem Schließen der Anwendung für das Update
Implementieren Sie das Protokoll, und registrieren Sie den DistributeDelegate
Delegaten wie im folgenden Beispiel gezeigt:
[MSACDistribute setDelegate:self];
Distribute.delegate = self;
Die distributeWillExitApp:
Delegatmethode wird direkt aufgerufen, bevor die App für die Updateinstallation beendet wird:
- (void)distributeWillExitApp:(MSACDistribute *)distribute {
// Perform the required clean up here.
}
func distributeWillExitApp(_ distribute: Distribute) {
// Perform the required clean up here.
}
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:
Dieses Feature funktioniert nur mit Builds, die mithilfe des App Center Distribute-Diensts verteilt werden. Es funktioniert nicht, wenn der Debugger angefügt ist oder das Feature für den iOS-geführten Zugriff aktiviert ist.
Nachdem Sie das SDK integriert haben, erstellen Sie eine Releaseversion Ihrer App, und laden Sie sie in Das App Center hoch, werden Benutzer in dieser Verteilergruppe per E-Mail über die neue Version benachrichtigt.
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 der App verwenden – App Center Distribute unterstützt keine In-App-Updates für Apps, die aus anderen Quellen installiert wurden (z. B. Herunterladen der App aus einer E-Mail-Anlage). 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.
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. - Unter iOS 11 ähnelt die Benutzeroberfläche iOS 9 und 10, aber iOS 11 fragt den Benutzer um Erlaubnis, auf 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.
- Unter iOS 9 und 10 wird eine Instanz von
Eine neue Version der App zeigt das Dialogfeld "In-App-Aktualisierung" an, in dem Benutzer aufgefordert werden, Ihre App zu aktualisieren, wenn:
- ein höherer Wert von
CFBundleShortVersionString
oder - ein gleicher Wert von
CFBundleShortVersionString
, aber ein höherer Wert vonCFBundleVersion
. - Die Versionen sind identisch, aber der eindeutige Buildbezeichner unterscheidet sich.
- ein höherer Wert von
Tipp
Wenn Sie dieselbe IPA ein zweites Mal hochladen, wird das Dialogfeld NICHT angezeigt, da die Binärdateien identisch sind. Wenn Sie einen neuen Build mit denselben Versionseigenschaften hochladen, wird das Aktualisierungsdialogfeld angezeigt. Der Grund dafür ist, dass es sich um eine andere Binärdatei handelt.
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.
- Erstellen Sie Ihre App im App Center-Portal, sofern noch nicht geschehen.
- Erstellen Sie eine neue Verteilergruppe, und nennen Sie sie, damit Sie erkennen können, dass sie zum Testen des In-App-Updatefeatures vorgesehen ist.
- 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.
- 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 mit der Nutzung der updateTrack-Eigenschaft beginnen.
- Klicken Sie im Portal auf die Schaltfläche " Neue Version verteilen ", und laden Sie Ihren Build der App hoch.
- 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.
- Überprüfen Sie die Verteilung, und verteilen Sie den Build an Ihre In-App-Testgruppe.
- 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.
- Heben Sie den Versionsnamen (
CFBundleShortVersionString
) Ihrer App auf. - 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 Weiterleitung der Methodenaufrufe des Anwendungsdelegats an App Center-Dienste
Das App Center SDK verwendet swizzling, um die Integration zu verbessern, indem er selbst einige Methodenaufrufe des Anwendungsdelegats weiterleite. Das Methoden-Swizzling ist eine Möglichkeit, die Implementierung von Methoden zur Laufzeit zu ändern. Wenn Sie aus irgendeinem Grund keine Swizzling verwenden möchten (z. B. aufgrund einer bestimmten Richtlinie), können Sie diese Weiterleitung für alle App Center-Dienste deaktivieren, indem Sie die folgenden Schritte ausführen:
- Öffnen Sie die Datei "Info.plist " des Projekts.
- Fügen Sie
AppCenterAppDelegateForwarderEnabled
als Schlüssel hinzu und setzen Sie den Wert auf0
. Dadurch wird die Weiterleitung von Anwendungsdelegats für alle App Center-Dienste deaktiviert. - Fügen Sie den
openURL
Rückruf in die DateiAppDelegate
des Projekts hinzu.
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// Pass the url to MSACDistribute.
return [MSACDistribute openURL:url];
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
// Pass the URL to App Center Distribute.
return Distribute.open(url)
}