Contrôle d'accès aux versions d'applications d'entreprise : niveaux de gris, taux de crash et limites de sécurité de la réparation à chaud

许愿牛科技 Vues 21

Le lancement progressif de Google Play est différent du rythme de lancement progressif de l'App Store : d'une part, les utilisateurs sont invités à ajouter un pourcentage et, d'autre part, le volume est automatiquement augmenté dans les sept jours. Les applications d'entreprise doivent écrire les taux de plantage comme contrôle d'accès et distinguer ce qui peut et ne peut pas être modifié par une réparation à chaud.

Les problèmes avec les applications d'entreprise sont rarement aussi simples qu'une « mauvaise ligne de code » ;La mauvaise version a atteint suffisamment de personnes. L'aide officielle de Google Play indique : le déploiement par étapes s'applique uniquement aux mises à jour, pas aux premiers lancements ; le pourcentage n'augmentera pas automatiquement et devra être augmenté manuellement par la personne en charge de la version. La documentation destinée aux développeurs d'Apple appelle la mise à jour une version progressive : pour les utilisateurs qui activent les mises à jour automatiques, le volume sera publié à un rythme fixe de 7 jours, 1 %, 2 %, 5 %, 10 %, 20 %, 50 % et enfin 100 %. Les deux parties font la même chose : verrouiller le rayon de souffle dans une fenêtre rétractable.

Limitez d’abord la nouvelle version à un petit ensemble d’appareils, puis observez la stabilité.

1. Deux ensembles de magasins, deux ensembles de grammaire en niveaux de gris

La comparaison de Bitrise en matière de gestion des versions est très claire : Apple ne vous permet pas de modifier manuellement le pourcentage, mais autorise plusieurs pauses dans un délai maximum de 30 jours ; après la reprise, continuer à partir du jour de la suspension au lieu de recommencer. Le jeu est plus flexible. Vous pouvez définir vous-même les intervalles et les proportions, mais il existe une contrainte stricte——Le pourcentage agrandi ne peut pas être annulé, ne peut qu'"abandonner". Après la suspension, les utilisateurs qui ont effectué la mise à niveau vers la nouvelle version continueront à rester dans la nouvelle version, mais aucun nouvel utilisateur n'entrera dans le lot. Si une application est supprimée des étagères ou si le programme pour développeurs expire, le phasage d'Apple s'arrêtera et elle sera immédiatement visible par tout le monde après sa réinscription. Si vous souhaitez contrôler le volume, vous pouvez uniquement soumettre à nouveau une version.

Dimensions Déploiement progressif de Google Play Déploiement de l'App Store par phases
En vigueur Package de mise à jour, non disponible pour la première version Mises à jour de version des applications déjà répertoriées
document.getElementById('af-error-page').style.display = 'none';Error 500 (Erreur du serveur)!!1*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{color:#222;text-align:unset;margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px;}* > body{background:url("//www.google.com/images/errors/robot.png") 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}pre{white-space:pre-wrap;}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url("//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png") no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url("//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png") no-repeat 0% 0%/100% 100%;-moz-border-image:url("//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png") 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url("//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png") no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}500. Ceci est une erreur.Une erreur s'est produite. Veuillez réessayer plus tard. C'est tout ce que nous savons.(function() {window.ERROR_PAGE = false; function replaceCurrentPageWithErrorPage() {if (!window.ERROR_PAGE) {var errorPage = document.getElementById('af-error-page2'); document.open('text/html'); document.close(); document.documentElement.setAttribute('lang', 'fr'); document.documentElement.setAttribute('dir', 'ltr'); document.body.appendChild(errorPage); window.ERROR_PAGE = true;}}if (document.addEventListener) {document.addEventListener('DOMContentLoaded', replaceCurrentPageWithErrorPage, false); window.addEventListener('load', replaceCurrentPageWithErrorPage, false);} else {document.attachEvent('onreadystatechange', function() {if (document.readyState === 'complete') {replaceCurrentPageWithErrorPage();}}); window.attachEvent('onload', replaceCurrentPageWithErrorPage);}}()); Augmentez manuellement le pourcentage, pas de 7 jours obligatoires 7 jours automatique : 1→2→5→10→20→50→100
pause Il ne se propagera plus après Halt. Les utilisateurs mis à niveau conserveront le nouveau package. Il peut être suspendu pour une durée totale de 30 jours, sans limite de nombre de fois.
Taux de repli Aucune réduction n'est autorisée, il suffit d'abandonner ou d'envoyer un nouveau colis Vous ne pouvez pas modifier manuellement le rapport. Si vous souhaitez le montant total, vous ne pouvez le débloquer qu’à l’avance.
Pays/Région Vous pouvez d'abord limiter le pays et vous ne pouvez pas supprimer le pays après le démarrage. Suivre le périmètre de vente existant

2. Le taux de crash doit être écrit sous la forme d'un contrôle d'accès « arrêtez si vous ne pouvez pas passer »

La médiane du secteur donnée par les « 2025 Mobile App Stability Outlook » de Luciq estdocument.getElementById('af-error-page').style.display = 'none';Error 500 (Erreur du serveur)!!1*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{color:#222;text-align:unset;margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px;}* > body{background:url("//www.google.com/images/errors/robot.png") 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}pre{white-space:pre-wrap;}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url("//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png") no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url("//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png") no-repeat 0% 0%/100% 100%;-moz-border-image:url("//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png") 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url("//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png") no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}500. Ceci est une erreur.Une erreur s'est produite. Veuillez réessayer plus tard. C'est tout ce que nous savons.(function() {window.ERROR_PAGE = false; function replaceCurrentPageWithErrorPage() {if (!window.ERROR_PAGE) {var errorPage = document.getElementById('af-error-page2'); document.open('text/html'); document.close(); document.documentElement.setAttribute('lang', 'fr'); document.documentElement.setAttribute('dir', 'ltr'); document.body.appendChild(errorPage); window.ERROR_PAGE = true;}}if (document.addEventListener) {document.addEventListener('DOMContentLoaded', replaceCurrentPageWithErrorPage, false); window.addEventListener('load', replaceCurrentPageWithErrorPage, false);} else {document.attachEvent('onreadystatechange', function() {if (document.readyState === 'complete') {replaceCurrentPageWithErrorPage();}}); window.attachEvent('onload', replaceCurrentPageWithErrorPage);}}());, l'équipe en chef peut atteindre 99,99 %. La plupart des équipes fixent le seuil de volume entre 99,5 % et 99,9 %, les finances et les soins médicaux étant plus élevés. En pratique, ne vous contentez pas de regarder la valeur absolue, mais comparez-la également avec la version précédente : si le taux de crash double à un moment donné, ou si l’ANR continue de dépasser 0,5 %, vous devriez l’arrêter au lieu de « l’observer une autre nuit ». Play rappelle également : les utilisateurs peuvent rédiger des avis publiquement par étapes, et la vague d'avis négatifs nuira à la marque avant la courbe d'effondrement.

2.1 Le package entreprise dispose également d'une couche de MDM

L'utilisation de la version grand public en niveaux de gris du magasin ne peut pas résoudre le problème de « la mise à jour uniquement pour les ingénieurs de terrain ». Il existe trois méthodes courantes de distribution interne au sein d'une entreprise : la version publique du magasin utilise la version officielle en niveaux de gris ; la version employé utilise la piste de test TestFlight/interne ; et le package de renforcement sur site utilise la version obligatoire MDM. Le contrôle d'accès doit être défini en fonction du suivi : la version publique examine les plantages et les scores, la version interne vérifie si les processus clés fonctionnent correctement et le package MDM examine également les certificats, la liaison des appareils et si les rétrogradations sont autorisées. Mélangez les trois pistes en un seul « push pour tout le personnel » et les problèmes seront signalés simultanément aux clients, aux ventes et aux ateliers.

3. Le correctif n'est pas une deuxième boutique d'applications

Pour les plantages natifs, les modèles d’autorisation, le SDK de paiement et les modifications du système WebView, vous pouvez uniquement créer de nouveaux fichiers binaires pour examen. La couche métier JS/Dart du framework cross-end peut utiliser des canaux tels que EAS Update et CodePush pour OTA. La limite de sécurité doit être écrite dans le système, et non le numéro de port :

  • Autoriser l'OTA: rédaction, mise en page, logique métier non critique et commutateurs pré-intégrés dans le package du magasin.
  • Pas d'OTA: Déclaration d'autorisation, liste de confidentialité, noyau de paiement et de connexion, détection de jailbreak, épinglage de certificat.
  • Doit être réinterpellé: Capacité à gérer les plantages natifs, les changements de comportement de l'API système et la dénomination des politiques de magasin.

Les entreprises clientes surestiment souvent la remédiation thermique. Si un « script push matinal » modifie les champs d'authentification ou de collecte, cela équivaut à contourner l'App Store et l'examen juridique. Le contrat et le manuel d'exploitation et de maintenance doivent indiquer qu'OTA dispose d'une liste, d'audits et d'un arrêt en un clic ; après l'arrêt, l'appareil doit pouvoir revenir à la version confirmée du package du magasin.

Lorsque le taux de crash dépasse la ligne, arrêtez d’augmenter le volume au lieu de continuer à augmenter le pourcentage.

4. Une carte de volume qui peut être accrochée au mur

Ne vous fiez pas au ressenti du groupe de discussion le jour du lancement. Il est recommandé de créer une fiche d'une page : pourcentage actuel, aucun taux de crash, ANR, heure de démarrage, conversions clés, nombre d'avis négatifs, personne en charge et sur quelle console se trouve le bouton d'abandon. Côté Play, pensez à attendre que le matériel du magasin soit à 100% avant de le modifier pour éviter que la moitié des utilisateurs ne voient des captures d'écran inappropriées. Si Apple décide de vendre intégralement par anticipation, elle doit se rendre compte qu’elle abandonne de manière irréversible le reste du rythme. Pour les failles fatales qui ne peuvent pas être réparées par le package natif, Apple propose un canal de révision accélérée. La révision régulière de Play est généralement plus rapide, mais les deux chaînes nécessitentSoumettre à nouveau le binaire, le pourcentage d'anciens forfaits qui ont été résiliés ne peut pas être réajusté.

Les applications opérationnelles sur le terrain doivent également examiner séparément les réseaux faibles : si les échantillons en niveaux de gris sont tous des réseaux Wi-Fi de bureau, un beau taux de crash ne peut pas représenter l'atelier. L'écriture des portraits des appareils dans la piste de test dans le contrôle d'accès est plus proche du scénario d'entreprise que de simplement regarder la moyenne mondiale. Si le canal du correctif logiciel doit être utilisé le même jour, un examen de « pourquoi il n'a pas été corrigé dans le binaire » doit être ajouté par la suite pour empêcher l'OTA de devenir la méthode de publication par défaut.

L’essence du contrôle d’accès aux versions d’applications d’entreprise est d’admettre que « les nouvelles versions ne sont pas dignes de confiance par défaut ». Les niveaux de gris achètent du temps d'observation, le taux de crash achète le pouvoir d'arrêt et les correctifs achètent un canal de correctifs plutôt qu'un endroit sans loi. Si vous débattez encore de "l'utilisation des niveaux de gris" lors de la prochaine réunion de version, imprimez cette carte : qui a le droit d'arrêter, combien de nombres doivent être arrêtés et combien de temps après l'arrêt, un nouveau binaire doit être donné. Discuter clairement de ces trois phrases protégera la scène plus que l'ajout de deux fonctions supplémentaires.

Consultation en ligne