Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Visual Studio App Center a été mis hors service le 31 mars 2025, à l’exception des fonctionnalités d’analyse et de diagnostic, qui continueront d’être prises en charge jusqu’au 30 juin 2026. En savoir plus.
App Center Distribute permet à vos utilisateurs d’installer une nouvelle version de l’application lorsque vous la distribuez via App Center. Avec une nouvelle version de l’application disponible, le Kit de développement logiciel (SDK) présente une boîte de dialogue de mise à jour aux utilisateurs pour télécharger ou reporter la nouvelle version. Une fois qu’ils choisissent de mettre à jour, le Kit de développement logiciel (SDK) commence à mettre à jour votre application.
Remarque
Il existe quelques éléments à prendre en compte lors de l’utilisation des mises à jour dans l’application :
- Si vous avez publié votre application dans l’App Store, les mises à jour dans l’application sont désactivées.
- Si vous exécutez des tests d’interface utilisateur automatisés, les mises à jour dans l’application bloquent vos tests d’interface utilisateur automatisés, car ils essaieront de s’authentifier auprès du back-end App Center. Nous vous recommandons de ne pas activer App Center Distribute pour votre cible de test d’interface utilisateur.
Remarque
Des modifications importantes ont été introduites dans la version 4.0.0 d'App Center. Suivez la section Migrate to App Center SDK 4.0.0 et versions ultérieures pour migrer App Center à partir des versions précédentes.
Important
Le Kit de développement logiciel (SDK) App Center ne prend pas en charge plusieurs applications de fenêtre introduites dans iOS 13.
Ajouter des mises à jour dans l’application à votre application
Suivez la section Prise en main si vous n’avez pas configuré le Kit de développement logiciel (SDK) dans votre application.
1. Ajouter le module De distribution App Center
Le Kit de développement logiciel (SDK) App Center est conçu avec une approche modulaire : vous devez uniquement intégrer les modules des services qui vous intéressent.
Intégration via Cocoapods
Si vous intégrez App Center à votre application via Cocoapods, ajoutez la dépendance suivante à votre podfile et exécutez pod install.
pod 'AppCenter/Distribute'
Intégration via Carthage
Ajoutez la dépendance suivante à votre
Cartfilepour inclure App Center Distribute.# 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.XExécutez
carthage update.Ouvrez l’onglet Paramètres généraux de votre cible d’application. Faites glisser et déposez le fichier AppCenterDistribute.framework du dossier Carthage/Build/iOS vers la section Infrastructures et bibliothèques liées dans XCode.
Faites glisser et déposez AppCenterDistributeResources.bundle à partir d’AppCenterDistribute.framework dans le navigateur de projet de XCode.
Une boîte de dialogue s’affiche, vérifiez que la cible de votre application est cochée. Puis, cliquez sur Terminer.
Intégration via Swift Package Manager
- Dans le menu Xcode, cliquez sur Fichier > Paquets Swift > Ajouter une Dépendance de Paquet.
- Dans la boîte de dialogue qui s’affiche, entrez l’URL du référentiel :
https://github.com/microsoft/appcenter-sdk-apple.git. - Dans Version, sélectionnez Jusqu’à La majeure suivante et utilisez l’option par défaut.
- Choisissez l’AppCenterDistribute dans la colonne Package Product .
Intégration en copiant les fichiers binaires dans votre projet
Si vous ne souhaitez pas utiliser Cocoapods, vous pouvez intégrer les modules en copiant les fichiers binaires dans votre projet. Suivez les étapes ci-dessous :
Remarque
Le Kit de développement logiciel (SDK) App Center prend en charge l’utilisation de XCframework. Si vous souhaitez intégrer XCframeworks dans votre projet, téléchargez le AppCenter-SDK-Apple-XCFramework.zip à partir de la page des versions et décompressez-le. Le contenu du dossier résultant n’est pas spécifique à la plateforme. Il contient plutôt XCframeworks pour chaque module. Elles peuvent être intégrées de la même façon que les frameworks habituels, comme décrit ci-dessous.
Téléchargez les infrastructures du Kit de développement logiciel (SDK) App Center fournies sous forme de fichier zip.
Décompressez le fichier et vous verrez un dossier appelé AppCenter-SDK-Apple/iOS qui contient des frameworks différents pour chaque service App Center. L’infrastructure appelée
AppCenterest requise dans le projet, car elle contient du code partagé entre les différents modules.[Facultatif] Créez un sous-répertoire pour les bibliothèques tierces.
- Comme meilleure pratique, les bibliothèques tierces se trouvent généralement à l’intérieur d’un sous-répertoire, souvent appelé Vendor. Si votre projet n’est pas organisé avec un sous-répertoire pour les bibliothèques, créez un sous-répertoire Fournisseur maintenant.
- Créez un groupe appelé Vendor à l’intérieur de votre projet Xcode pour imiter la structure de fichiers sur le disque.
Ouvrez Finder et copiez le dossier AppCenter-SDK-Apple/iOS décompressé dans le dossier de votre projet à l’emplacement où vous le souhaitez.
Ajoutez l’infrastructure sdk au projet dans Xcode :
- Vérifiez que le navigateur de projets est visible (⌘+1).
- Faites maintenant glisser et déposez AppCenter.framework, AppCenterDistribute.framework et AppCenterDistributeResources.bundle à partir du Finder (ceux du dossier Vendor ) dans le navigateur de projet de Xcode. AppCenter.framework est requis pour démarrer le Kit de développement logiciel (SDK). Vérifiez qu’il est ajouté à votre projet, sinon les autres modules ne fonctionnent pas, et votre projet ne se compile pas correctement.
- Une boîte de dialogue s’affiche, vérifiez que la cible de votre application est cochée. Puis, cliquez sur Terminer.
2. Démarrer « App Center Distribute »
App Center utilise uniquement les modules spécifiques que vous appelez dans votre application. Vous devez appeler explicitement chacun d’entre eux lors du démarrage du Kit de développement logiciel (SDK).
2.1 Ajouter l’importation pour App Center Distribute
Ouvrez le fichier AppDelegate.m du projet dans Objective-C ou le fichier AppDelegate.swift dans Swift et ajoutez les instructions d’importation suivantes :
@import AppCenter;
@import AppCenterDistribute;
import AppCenter
import AppCenterDistribute
2.2 Ajouter la start:withServices: méthode
Ajoutez Distribute à la méthode start:withServices: pour démarrer le service App Center Distribute.
Insérez la ligne suivante pour démarrer le Kit de développement logiciel (SDK) dans la classe AppDelegate.m du projet pour Objective-C ou la classe AppDelegate.swift pour Swift dans la didFinishLaunchingWithOptions méthode.
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACDistribute class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Distribute.self])
Vérifiez que vous avez remplacé {Your App Secret} dans l’exemple de code ci-dessus par votre secret d’application. Consultez également la section Prise en main si vous n’avez pas configuré le Kit de développement logiciel (SDK) dans votre application.
2.3 Modifier le fichier Info.plist du projet
- Dans le fichier Info.plist du projet, ajoutez une nouvelle clé en
URL typescliquant sur le bouton « + » en regard de « Liste des propriétés d’informations » en haut. Si Xcode affiche votre Info.plist en tant que code source, reportez-vous au conseil ci-dessous. - Remplacez le type de clé par Array.
- Ajoutez une nouvelle entrée au tableau (
Item 0) et remplacez le type par Dictionnaire. - Sous
Item 0, ajoutez uneURL Schemesclé et remplacez le type par Array. - Sous votre
URL Schemesclé, ajoutez une nouvelle entrée (Item 0). - Sous
URL Schemes>Item 0, modifiez la valeur enappcenter-{APP_SECRET}et remplacez{APP_SECRET}par le secret d’application de votre application.
Conseil / Astuce
Si vous souhaitez vérifier que vous avez modifié correctement Info.plist, ouvrez-le en tant que code source. Elle doit contenir l’entrée suivante avec votre secret d’application au lieu de {APP_SECRET}:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>appcenter-{APP_SECRET}</string>
</array>
</dict>
</array>
Utiliser un groupe de distribution privé
Par défaut, Distribute utilise un groupe de distribution public. Si vous souhaitez utiliser un groupe de distribution privé, vous devez le définir explicitement via updateTrack la propriété.
MSACDistribute.updateTrack = MSACUpdateTrackPrivate;
Distribute.updateTrack = .private
Remarque
La valeur par défaut est UpdateTrack.public. Cette propriété ne peut être mise à jour qu’avant l’appel de méthode AppCenter.start . Les modifications apportées au suivi de la mise à jour ne sont pas conservées lorsque le processus d’application redémarre. Par conséquent, si la propriété n’est pas toujours mise à jour avant l’appel AppCenter.start , elle sera publique par défaut.
Après cet appel, une fenêtre de navigateur s’ouvre pour authentifier l’utilisateur. Toutes les vérifications de mises à jour suivantes obtiennent la dernière version sur le canal privé.
Si un utilisateur est sur la piste privée, cela signifie qu’après l’authentification réussie, il obtient la dernière version de tous les groupes de distribution privés dont il est membre. Si un utilisateur est sur la piste publique, cela signifie qu’il obtiendra la dernière version de n’importe quel groupe de distribution public.
Désactiver la vérification automatique de la mise à jour
Par défaut, le Kit de développement logiciel (SDK) recherche automatiquement les nouvelles versions :
- Au démarrage de l’application.
- Lorsque l’application passe en arrière-plan, puis au premier plan.
- Lors de l’activation du module Distribuer s’il était précédemment désactivé.
Si vous souhaitez vérifier manuellement les nouvelles versions, vous pouvez désactiver la vérification automatique de la mise à jour. Pour ce faire, appelez la méthode suivante avant le démarrage du Kit de développement logiciel (SDK) :
[MSACDistribute disableAutomaticCheckForUpdate];
Distribute.disableAutomaticCheckForUpdate()
Remarque
Cette méthode doit être appelée avant l’appel de méthode AppCenter.start .
Vous pouvez ensuite utiliser l’API checkForUpdate décrite dans la section suivante.
Rechercher manuellement la mise à jour
[MSACDistribute checkForUpdate];
Distribute.checkForUpdate()
Cela envoie une demande à App Center et affiche une boîte de dialogue de mise à jour si une nouvelle version est disponible.
Remarque
Une vérification manuelle de l’appel de mise à jour fonctionne même lorsque les mises à jour automatiques sont activées. Une vérification manuelle de la mise à jour est ignorée si une autre vérification est déjà effectuée. La vérification manuelle de la mise à jour ne sera pas traitée si l’utilisateur a reporté les mises à jour (sauf si la dernière version est une mise à jour obligatoire).
Personnaliser ou localiser la boîte de dialogue mise à jour dans l’application
1. Personnaliser ou localiser du texte
Vous pouvez facilement fournir vos propres chaînes de ressources si vous souhaitez localiser le texte affiché dans la boîte de dialogue de mise à jour. Examinez ce fichier de chaînes. Utilisez le même nom/clé de chaîne et spécifiez la valeur localisée à refléter dans la boîte de dialogue dans vos propres fichiers de chaînes d’application.
2. Personnaliser la boîte de dialogue de mise à jour
Vous pouvez personnaliser l’apparence de la boîte de dialogue de mise à jour par défaut en implémentant le DistributeDelegate protocole. Vous devez inscrire le délégué avant de démarrer le Kit de développement logiciel (SDK), comme indiqué dans l’exemple suivant :
[MSACDistribute setDelegate:self];
Distribute.delegate = self;
Voici un exemple d’implémentation de délégué qui remplace la boîte de dialogue SDK par une boîte de dialogue personnalisée.
- (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;
}
Si vous revenez YES/true dans la méthode ci-dessus, votre application doit obtenir le choix de l’utilisateur et envoyer un message au Kit de développement logiciel (SDK) avec le résultat à l’aide de l’API suivante.
// 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);
Si vous n’appelez pas la méthode ci-dessus, la méthode releaseAvailableWithDetails: se répétera chaque fois que votre application entre en avant-plan.
3. Exécuter du code si aucune mise à jour n’est trouvée
Dans les cas où le SDK recherche des mises à jour et ne trouve aucune mise à jour disponible plus récente que celle actuellement utilisée, un rappel de délégué distributeNoReleaseAvailable: de MSACDistributeDelegate est appelé. Cela vous permet d’exécuter du code personnalisé dans de tels scénarios.
Voici des exemples qui montrent comment afficher l’interface utilisateur d’alerte quand aucune mise à jour n’est trouvée :
- (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)
}
Activer ou désactiver App Center Distribute au moment de l’exécution
Vous pouvez activer et désactiver App Center Distribute au moment de l’exécution. Si vous le désactivez, le Kit de développement logiciel (SDK) ne fournit aucune fonctionnalité de mise à jour dans l’application, mais vous pouvez toujours utiliser le service Distribuer dans le portail App Center.
[MSACDistribute setEnabled:NO];
Distribute.enabled = false
Pour réactiver App Center Distribute, utilisez la même API, mais passez YES/true en tant que paramètre.
[MSACDistribute setEnabled:YES];
Distribute.enabled = true
L’état est conservé dans le stockage de l’appareil dans les lancements d’application.
Remarque
Cette méthode ne doit être utilisée qu’après Distribute le démarrage.
Vérifier si App Center Distribute est activé
Vous pouvez également vérifier si App Center Distribute est activé ou non :
BOOL enabled = [MSACDistribute isEnabled];
var enabled = Distribute.enabled
Remarque
Cette méthode ne doit être utilisée qu’une fois Distribute démarrée, elle retourne false toujours avant le début.
N’initialisez pas App Center Distribute pendant le développement
S’il est en mode privé, App Center Distribute ouvre son interface utilisateur/navigateur au démarrage de l’application. Bien qu’il s’agit d’un comportement attendu pour vos utilisateurs finaux, cela peut vous perturber pendant la phase de développement de votre application. Nous vous déconseillons d’initialiser Distribute dans votre DEBUG configuration.
#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
Effectuer un nettoyage juste avant la fermeture de l’application pour la mise à jour
Implémentez le protocole et inscrivez le DistributeDelegate délégué, comme indiqué dans l’exemple suivant :
[MSACDistribute setDelegate:self];
Distribute.delegate = self;
La distributeWillExitApp: méthode de délégué est appelée juste avant la fin de l’application pour l’installation de la mise à jour :
- (void)distributeWillExitApp:(MSACDistribute *)distribute {
// Perform the required clean up here.
}
func distributeWillExitApp(_ distribute: Distribute) {
// Perform the required clean up here.
}
Comment fonctionnent les mises à jour dans l’application ?
Remarque
Pour que les mises à jour dans l’application fonctionnent, une build d’application doit être téléchargée à partir du lien. Elle ne fonctionnera pas si elle est installée à partir d’un IDE ou manuellement.
La fonctionnalité de mise à jour dans l’application fonctionne comme suit :
Cette fonctionnalité ne fonctionne qu’avec les builds distribuées à l’aide du service App Center Distribute. Elle ne fonctionnera pas lorsque le débogueur est attaché ou si la fonctionnalité d’accès guidé iOS est activée..
Une fois que vous avez intégré le Kit de développement logiciel (SDK), générez une version de votre application et chargez-la dans App Center, les utilisateurs de ce groupe de distribution seront avertis de la nouvelle version par e-mail.
Lorsque chaque utilisateur ouvre le lien dans son e-mail, l’application est installée sur son appareil. Il est important qu’ils utilisent le lien de messagerie pour installer l’application - App Center Distribute ne prend pas en charge les mises à jour dans l’application pour les applications installées à partir d’autres sources (par exemple, le téléchargement de l’application à partir d’une pièce jointe). Lorsqu’une application est téléchargée à partir du lien, le Kit de développement logiciel (SDK) enregistre des informations importantes à partir des cookies pour rechercher les mises à jour ultérieurement ; sinon, le SDK n’a pas ces informations clés.
Si l’application définit la piste sur privée, un navigateur s’ouvre pour authentifier l’utilisateur et activer les mises à jour dans l’application. Le navigateur ne s’ouvre plus tant que les informations d’authentification restent valides même lorsque vous revenez au suivi public et revenez à privé ultérieurement. Si l’authentification du navigateur réussit, l’utilisateur est redirigé automatiquement vers l’application. Si la piste est publique (qui est la valeur par défaut), l’étape suivante se produit directement.
- Sur iOS 9 et 10, une instance de
SFSafariViewControllers'ouvrira au sein de l'application pour authentifier l'utilisateur. Elle se ferme automatiquement une fois l’authentification réussie. - Sur iOS 11, l’expérience utilisateur est similaire à iOS 9 et 10, mais iOS 11 demande à l’utilisateur son autorisation d’accéder aux informations de connexion. Il s’agit d’une boîte de dialogue au niveau du système et elle ne peut pas être personnalisée. Si l’utilisateur annule la boîte de dialogue, il peut continuer à utiliser la version qu’il teste, mais il n’obtient pas de mises à jour dans l’application. Ils seront invités à accéder à nouveau aux informations de connexion lorsqu’ils lancent l’application la prochaine fois.
- Sur iOS 9 et 10, une instance de
Une nouvelle version de l’application affiche la boîte de dialogue de mise à jour dans l’application demandant aux utilisateurs de mettre à jour votre application s’il s’agit des éléments suivants :
- une valeur supérieure de
CFBundleShortVersionStringou - une valeur égale de
CFBundleShortVersionStringmais une valeur supérieure deCFBundleVersion. - les versions sont identiques, mais l’identificateur unique de build est différent.
- une valeur supérieure de
Conseil / Astuce
Si vous chargez la même adresse IPa une seconde fois, la boîte de dialogue n’apparaît PAS comme les fichiers binaires sont identiques. Si vous chargez une nouvelle build avec les mêmes propriétés de version, la boîte de dialogue de mise à jour s’affiche. La raison en est qu’il s’agit d’un autre binaire.
Comment tester les mises à jour dans l’application ?
Vous devez charger des builds de mise en production (qui utilisent le module Distribuer du Kit de développement logiciel (SDK) App Center vers le portail App Center pour tester les mises à jour dans l’application, en augmentant les numéros de version à chaque fois.
- Créez votre application dans le portail App Center si ce n’est pas déjà fait.
- Créez un groupe de distribution et nommez-le afin de pouvoir le reconnaître pour tester la fonctionnalité de mise à jour dans l’application.
- Ajoutez-vous (ou toutes les personnes que vous souhaitez inclure sur votre test de la fonctionnalité de mise à jour dans l’application). Utilisez une adresse e-mail nouvelle ou levée pour cela, qui n’a pas été utilisée pour cette application sur App Center. Cela garantit que votre expérience est proche de l’expérience de vos testeurs réels.
- Créez une nouvelle build de votre application qui inclut App Center Distribute et contient la logique d’installation, comme décrit ci-dessous. Si le groupe est privé, n’oubliez pas de définir la piste de mise à jour privée dans l’application avant de commencer à utiliser la propriété updateTrack.
- Cliquez sur le bouton Distribuer une nouvelle version dans le portail et chargez votre build de l’application.
- Une fois le chargement terminé, cliquez sur Suivant et sélectionnez le groupe de distribution que vous avez créé comme destination de la distribution de cette application.
- Passez en revue la distribution et distribuez la build à votre groupe de test dans l’application.
- Les personnes de ce groupe recevront une invitation à être testeurs de l’application. Une fois l’invitation acceptée, il peut télécharger l’application à partir du portail App Center à partir de son appareil mobile. Une fois les mises à jour dans l’application installées, vous êtes prêt à tester les mises à jour dans l’application.
- Mettez à jour le nom de version (
CFBundleShortVersionString) de votre application. - Générez la version finale de votre application et téléchargez une nouvelle compilation de votre application comme vous l’avez fait à l’étape précédente, et distribuez-la au groupe de distribution que vous avez créé précédemment. Les membres du groupe de distribution seront invités à mettre à jour vers une nouvelle version lors du prochain démarrage de l'application.
Conseil / Astuce
Consultez les informations sur l’utilisation d’App Center Distribute pour obtenir des informations plus détaillées sur les groupes de distribution , etc. Bien qu’il soit possible d’utiliser App Center Distribute pour distribuer une nouvelle version de votre application sans ajouter de code, l’ajout d’App Center Distribute au code de votre application entraîne une expérience plus transparente pour vos testeurs et utilisateurs au fur et à mesure qu’ils obtiennent l’expérience de mise à jour dans l’application.
Désactiver le transfert des appels de méthodes du délégué d’application aux services App Center
Le Kit de développement logiciel (SDK) App Center utilise swizzling pour améliorer son intégration en transférant lui-même certains appels de méthodes du délégué d’application. La méthode swizzling est un moyen de modifier l’implémentation des méthodes au moment de l’exécution. Si, pour une raison quelconque, vous ne souhaitez pas utiliser swizzling (par exemple, en raison d’une stratégie spécifique), vous pouvez désactiver ce transfert pour tous les services App Center en suivant les étapes ci-dessous :
- Ouvrez le fichier Info.plist du projet.
- Ajoutez la clé
AppCenterAppDelegateForwarderEnabledet définissez la valeur0. Cela désactive le transfert délégué d’application pour tous les services App Center. - Ajoutez le
openURLrappel dans le fichierAppDelegatedu projet.
- (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)
}