Notes
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 Distribution permet à vos utilisateurs/testeurs d’installer de nouvelles versions d’une application une fois que vous l’avez distribuée via App Center. Une fois activé, 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 l’installation de la dernière mise à jour. Une fois qu’ils choisissent de mettre à jour, le Kit de développement logiciel (SDK) commence à mettre à jour votre application.
Important
Le Kit de développement logiciel (SDK) De distribution pour Unity ne prend pas en charge UWP. Les instructions de cette page couvrent uniquement Android et iOS.
Avertissement
Google Play considère le code de mise à jour dans l’application comme un comportement malveillant même s’il n’est pas utilisé lors de l’exécution. Supprimez ce code comme indiqué dans cette section avant de soumettre votre application à Google Play. L’échec de la suppression du code de mise à jour dans l’application peut entraîner une non-conformité et la suppression de l’application de Google Play.
Remarque
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 désactiver les mises à jour dans l’application pour vos tests d’interface utilisateur.
Ajouter des mises à jour dans l’application à votre application
Ajouter le module De distribution App Center
Le Kit de développement logiciel (SDK) App Center est conçu avec une approche modulaire : un développeur doit uniquement intégrer les modules des services qui les intéressent.
Suivez les documents de prise en main d’Unity si vous n’avez pas encore configuré et démarré le Kit de développement logiciel (SDK) dans votre application. Veillez à importer le package App Center Distribute. Son nom doit être au format AppCenterDistribute-v{version}.unitypackage
.
Remarque
Android 10 ou version ultérieure a des restrictions sur l’activité de lancement à partir de l’arrière-plan. Consultez l’article sur les restrictions de démarrage des activités en arrière-plan.
Remarque
Les applications s’exécutant sur Android 10 (édition Go) ne peuvent pas recevoir l’autorisation SYSTEM_ALERT_WINDOW . Consultez l’article sur SYSTEM_ALERT_WINDOW sur les appareils Go.
Remarque
À compter d’Android 11, ACTION_MANAGE_OVERLAY_PERMISSION
les intentions amènent toujours l’utilisateur à l’écran Paramètres de niveau supérieur, où l’utilisateur peut accorder ou révoquer les SYSTEM_ALERT_WINDOW
autorisations pour les applications. Consultez l’article sur les mises à jour des autorisations dans Android 11.
Supprimer les mises à jour de l'application pour les versions Google Play
Google Play considère le code de mise à jour dans l’application comme un comportement malveillant même s’il n’est pas utilisé lors de l’exécution. Supprimez ce code avant de soumettre votre application à Google Play. L’échec de la suppression du code de mise à jour dans l’application peut entraîner une non-conformité et la suppression de l’application de Google Play. Pour supprimer le code natif des mises à jour intégrées à l'application, décochez la case à cocher Utiliser Distribute sous la section Distribute sur l'objet du jeu avec AppCenterBehavior attaché.
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 passer UpdateTrack
à Private.
Pour ce faire, choisissez Private dans la liste déroulante Suivi des mises à jour sous Section Distribuer sur l’objet de jeu avec AppCenterBehavior attaché.
Lorsque vous utilisez la piste privée, 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, décochez la case Vérification automatique de la mise à jour sous Section Distribuer l’objet de jeu avec AppCenterBehavior attaché.
Vous pouvez ensuite utiliser l’API CheckForUpdate
décrite dans la section suivante.
Rechercher manuellement la mise à jour
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 fournir vos propres chaînes de ressources si vous souhaitez localiser le texte affiché dans la boîte de dialogue mise à jour. Examinez les fichiers de chaîne pour iOS dans ce fichier de ressources iOS et pour Android dans ce fichier de ressources Android. 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 ressources 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 ReleaseAvailable
rappel.
Avertissement
Vous devez enregistrer le callback dans la méthode Awake
d’un MonoBehaviour
lors du chargement de la première scène de votre application pour éviter de manquer les appels de callback de libération.
// In this example, OnReleaseAvailable is a method name in same class
Distribute.ReleaseAvailable = OnReleaseAvailable;
Voici une implémentation de rappel qui remplace la boîte de dialogue du Kit de développement logiciel (SDK) par une logique personnalisée :
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;
// (Do something with the values if you want)
// On mandatory update, user can't postpone
if (releaseDetails.MandatoryUpdate)
{
// Force user to update (you should probably show some custom UI here)
Distribute.NotifyUpdateAction(UpdateAction.Update);
}
else
{
// Allow user to update or postpone (you should probably show some custom UI here)
// "GetUserUpdateAction()" isn't part of the SDK; it just represents a way of getting user response.
// This blocks the thread while awaiting the user's response! This example shouldn't be used literally
UpdateAction updateAction = GetUserUpdateAction();
Distribute.NotifyUpdateAction(updateAction);
}
// Return true if you're using your own UI to get user response, false otherwise
return true;
}
Notes d’implémentation pour Android :
Comme illustré dans l’exemple, vous devez appeler soit Distribute.NotifyUpdateAction(UpdateAction.UPDATE);
soit Distribute.NotifyUpdateAction(UpdateAction.POSTPONE);
si votre rappel retourne true
.
Si vous n’appelez pas NotifyUpdateAction
, le rappel se répète à chaque changement d’activité.
Le rappel peut être appelé à nouveau avec la même version si l’activité change avant que l’action de l’utilisateur soit avertie du Kit de développement logiciel (SDK).
Ce comportement est nécessaire pour couvrir les scénarios suivants :
- Votre application est envoyée à l’arrière-plan (par exemple, en appuyant sur HOME), puis reprise dans une activité différente.
- Votre activité est couverte par une autre sans quitter l’application (par exemple, cliquer sur certaines notifications).
- Scénarios similaires à ceux ci-dessus.
Dans ce cas, l’activité qui héberge la boîte de dialogue peut être remplacée sans interaction utilisateur. Par conséquent, le Kit de développement logiciel (SDK) appelle à nouveau l’écouteur pour pouvoir restaurer la boîte de dialogue personnalisée.
3. Exécuter du code si aucune mise à jour n’est trouvée
Dans les cas où le SDK recherche les mises à jour et ne trouve aucune mise à jour disponible plus récente que celle actuellement utilisée, un NoReleaseAvailable
rappel est appelé. Cela vous permet d’exécuter du code personnalisé dans de tels scénarios.
Vous devez inscrire le rappel avant d’appeler AppCenter.Start
comme indiqué dans l’exemple suivant :
// 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.");
}
## Enable or disable App Center Distribute at runtime
You can enable and disable App Center Distribute at runtime. If you disable it, the SDK won't provide any in-app update functionality but you can still use the Distribute service in the App Center portal.
To disable the Distribute service, use the following code:
```csharp
Distribute.SetEnabledAsync(false);
Pour réactiver App Center Distribute, utilisez la même API, mais passez true
en tant que paramètre.
Distribute.SetEnabledAsync(true);
Cette API est asynchrone, vous pouvez en savoir plus sur notre guide des API asynchrones App Center .
Vous n’avez pas besoin d’attendre cet appel pour effectuer d’autres appels d’API (par IsEnabledAsync
exemple) cohérents.
L’état est conservé dans le stockage de l’appareil dans les lancements d’application.
Vérifier si App Center Distribute est activé
Vous pouvez également vérifier si App Center Distribute est activé :
Distribute.IsEnabledAsync();
Cette API est asynchrone, vous pouvez en savoir plus sur notre guide des API asynchrones App Center .
Activer les mises à jour dans l’application pour les builds de débogage
Par défaut, les mises à jour dans l’application sont activées uniquement pour les builds de mise en production.
Pour activer les mises à jour dans l’application pour les versions de débogage sur Android et iOS, cochez la case Activer la distribution en débogage sous la section Distribute sur l’objet de jeu avec AppCenterBehavior attaché.
Dans Unity, une version débogable est une version avec l'option version de développement activée.
Effectuer un nettoyage juste avant la fermeture de l’application pour la mise à jour
Remarque
Ce rappel fonctionne uniquement sur iOS.
Inscrivez le rappel comme indiqué dans l’exemple suivant :
// In this example, OnWillExitApp is a method name in same class
Distribute.WillExitApp = OnWillExitApp;
void OnWillExitApp()
{
// Perform clean up here
}
Avec cela, OnWillExitApp()
sera appelé lorsque Distribute est sur le point de fermer.
Fonctionnement des 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é fonctionne uniquement avec les builds (par défaut) RELEASE qui sont distribués à l’aide du service App Center Distribute. Elle ne fonctionnera pas 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 distribution de votre application et téléchargez-la vers App Center. Les utilisateurs du groupe de distribution sont 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 l'email pour installer - nous ne prenons pas en charge l'installation manuelle. 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.
- 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 :
- Ios:
- une valeur supérieure de
CFBundleShortVersionString
ou - une valeur égale de
CFBundleShortVersionString
mais une valeur supérieure deCFBundleVersion
. - les versions sont identiques, mais l’identificateur unique de build est différent.
- une valeur supérieure de
- Android :
- une valeur supérieure de
versionCode
ou - une valeur égale de
versionCode
mais une valeur différente deversionName
.
- une valeur supérieure de
- Ios:
Conseil / Astuce
Si vous chargez le même .apk/.ipa une deuxième fois, la boîte de dialogue N’apparaît pas comme les fichiers binaires sont identiques. Sur iOS, 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. Sur Android, les fichiers binaires sont considérés comme identiques si les deux propriétés de version sont identiques.
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 donnez-lui un nom.
- 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 cette étape, qui n’est pas déjà utilisée avec cette application. 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
UpdateTrack
propriété. - 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éé précédemment 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.
- Modifiez la version de votre application (
CFBundleShortVersionString
ouCFBundleVersion
pour iOS,versionCode
pour Android). - Générez la version de publication de votre application et chargez une nouvelle build comme vous l’avez fait à l’étape précédente. Distribuer 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.