Plantages app Center (Cordova)

Important

Visual Studio App Center doit être mis hors service le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à ce qu’il soit entièrement mis hors service, il existe plusieurs alternatives recommandées vers lesquelles vous pouvez envisager de migrer.

En savoir plus sur les chronologies et les alternatives de support.

Notes

La prise en charge de Cordova Apps a pris fin en avril 2022. Pour plus d’informations, consultez le blog App Center.

Les incidents app Center génèrent automatiquement un journal des incidents chaque fois que votre application se bloque. Le journal est d’abord écrit dans le stockage de l’appareil et lorsque l’utilisateur redémarre l’application, le rapport d’incident est envoyé à App Center. La collecte des incidents fonctionne à la fois pour les applications bêta et actives, c’est-à-dire celles soumises au App Store. Les journaux d’incident contiennent des informations précieuses pour vous aider à résoudre le blocage.

Suivez la section Prise en main si vous n’avez pas encore configuré le Kit de développement logiciel (SDK) dans votre application.

Générer un incident de test

App Center Crashs vous fournit une API pour générer un plantage de test afin de tester facilement le SDK. Cette API ne peut être utilisée que dans les applications de test/bêta et ne fera rien dans les applications de production.

AppCenter.Crashes.generateTestCrash();

Notes

Votre application Cordova doit être compilée en mode de publication pour que ce blocage soit envoyé à App Center.

Obtenir plus d’informations sur un incident précédent

App Center Crashs a deux API qui vous donnent plus d’informations en cas de plantage de votre application.

L’application a-t-elle reçu un avertissement de mémoire insuffisante lors de la session précédente ?

À tout moment après le démarrage du Kit de développement logiciel (SDK), vous pouvez case activée si l’application a reçu un avertissement de mémoire lors de la session précédente :

var success = function(hadLowMemoryWarning) {
    console.log(`there was ${hadLowMemoryWarning ? "a" : "no"} memory warning`);
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.hasReceivedMemoryWarningInLastSession(success, error);

Notes

Dans certains cas, l’exécution de la mémoire insuffisante d’un appareil peut ne pas déclencher des événements pouvant être suivis.

L’application s’est-elle planté lors de la session précédente ?

À tout moment après le démarrage du Kit de développement logiciel (SDK), vous pouvez case activée si l’application s’est plantée lors du lancement précédent :

var success = function(didCrash) {
    console.log("there was " + (didCrash ? "a" : "no") + " crash");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.hasCrashedInLastSession(success, error);

Cela s’avère utile si vous souhaitez ajuster le comportement ou l’interface utilisateur de votre application après un incident. Certains développeurs peuvent vouloir montrer quelque chose pour s’excuser à leurs utilisateurs, ou pour entrer en contact après un incident.

Détails sur le dernier incident

Si votre application s’est plantée précédemment, vous pouvez obtenir des détails sur le dernier incident.

var success = function(crashReport) {
    //do something with crash report
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.lastSessionCrashReport(success, error);

Personnaliser votre utilisation des incidents d’App Center

Les incidents d’App Center permettent aux développeurs d’effectuer des actions supplémentaires avant et lors de l’envoi de journaux d’incident à App Center.

Le traitement se bloque en JavaScript

Vous pouvez configurer le KIT de développement logiciel (SDK) pour envoyer automatiquement des rapports d’incident ou traiter les incidents en JavaScript en modifiant la valeur de préférence APPCENTER_CRASHES_ALWAYS_SEND dans config.xml. Pour traiter les plantages dans JavaScript, définissez-le sur false.

<preference name="APPCENTER_CRASHES_ALWAYS_SEND" value="false" />

Vous pouvez ensuite utiliser la AppCenter.Crashes.process(processFunction, errorCallback) méthode pour personnaliser la procession des incidents.

Le blocage doit-il être traité ?

false Passez au sendCallback si vous souhaitez décider si un incident particulier doit être traité ou non. Par exemple, il peut y avoir un incident au niveau du système que vous souhaitez ignorer et que vous ne souhaitez pas envoyer à App Center.

var errorCallback = function(error) {
    console.error(error);
};

var processFunction = function(attachments, sendCallback) {
    sendCallback(false); //crash won't be sent
};

AppCenter.Crashes.process(processFunction, errorCallback);

Sinon, passez true à la sendCallback fonction et le plantage sera envoyé.

var errorCallback = function(error) {
    console.error(error);
};

var processFunction = function(attachments, sendCallback) {
    sendCallback(true); //crash will be sent
};

AppCenter.Crashes.process(processFunction, errorCallback);

Notes

Pour utiliser cette fonctionnalité, vous devez définir APPCENTER_CRASHES_ALWAYS_SEND la valeur de préférence dans config.xml sur false.

Cette fonctionnalité dépend donc du traitement des incidents dans JavaScript.

Ajouter des pièces jointes à un rapport d’incident

Vous pouvez ajouter des pièces jointes binaires et de texte à un rapport d’incident. Le KIT de développement logiciel (SDK) les envoie avec l’incident afin que vous puissiez les voir dans le portail App Center. Le rappel suivant sera appelé juste avant l’envoi d’un incident stocké à partir des lancements précédents de l’application, mais pas au moment de l’incident. Assurez-vous que le fichier de pièce jointe n’est pas nommé minidump.dmp , car ce nom est réservé aux fichiers minidump. Voici un exemple d’attachement d’un texte et d’une image à un incident :

var errorCallback = function(error) {
    console.error(error);
};

var processFunction = function(attachments, sendCallback) {
    for (var i = 0; i < attachments.length; i++) {
        attachments[i].addTextAttachment('Hello text attachment!', 'hello.txt');
        var imageAsBase64string = '...';
        attachments[i].addBinaryAttachment(imageAsBase64string, 'logo.png', 'image/png');
    }
    sendCallback(true); //crash will be sent
};

AppCenter.Crashes.process(processFunction, errorCallback);

Notes

Pour utiliser cette fonctionnalité, vous devez définir APPCENTER_CRASHES_ALWAYS_SEND la valeur de préférence dans config.xml sur false.

Cette fonctionnalité dépend donc du traitement des incidents dans JavaScript.

Notes

La limite de taille est actuellement de 1,4 Mo sur Android et de 7 Mo sur iOS. La tentative d’envoi d’une pièce jointe plus volumineuse déclenche une erreur.

Activer ou désactiver les plantages d’App Center au moment de l’exécution

Vous pouvez activer et désactiver les blocages d’App Center au moment de l’exécution. Si vous le désactivez, le Kit de développement logiciel (SDK) n’effectuera aucun rapport d’incident pour l’application.

var success = function() {
    console.log("crashes disabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.setEnabled(false, success, error);

Pour réactiver App Center Plantages, utilisez la même API, mais passez true en tant que paramètre.

var success = function() {
    console.log("crashes enabled");
}

var error = function(error) {
    console.error(error);
}

AppCenter.Crashes.setEnabled(true, success, error);

L’état est conservé dans le stockage de l’appareil entre les lancements d’application.

Vérifiez si les blocages d’App Center sont activés

Vous pouvez également case activée si les incidents d’App Center sont activés :

var success = function(result) {
    console.log("crashes " + (result) ? "enabled" : "disabled");
}

var error = function(error) {
    console.error(error);
}
AppCenter.Crashes.isEnabled(success, error);