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.
Problèmes lors de l’installation
- Dans la console, recherchez un journal Assert avec le message « Kit de développement logiciel (SDK) App Center configuré avec succès ». Le message implique que le Kit de développement logiciel (SDK) est correctement configuré.
- Si vous utilisez Cocoapods pour intégrer App Center dans votre application iOS et rencontrer une erreur avec le message ,
CocoaPods - Unable to find a specification for AppCenterexécutezpod repo updatepour mettre à jour votre dépôt Cocoapods local, puis réexécutezpod install. - Si vous utilisez CocoaPods pour intégrer App Center dans votre application iOS et pendant la compilation du projet, vous rencontrez une erreur avec le message :
framework not found AppCenter.xcframeworkvous devez mettre à jour (réinstaller) Cocoapods vers la version tardive en exécutant[sudo] gem install cocoapods. - Si vous intégrez manuellement les fichiers binaires du Kit de développement logiciel (SDK), vérifiez que les modules sont activés pour votre projet.
Les données d’analyse ne s’affichent pas dans le portail
Vérifiez que vous avez correctement intégré les modules du Kit de développement logiciel (SDK).
Assurez-vous que la clé secrète de l'application appropriée est incluse lors de l'appel de la méthode
start:withServices:. Vous pouvez copier le code exactstart:withServices:en ouvrant l’application dans le portail et en accédant à la page Prise en main .Si vous souhaitez voir les journaux envoyés au serveur principal, changez le niveau de journal par Détaillé dans votre application. Le Kit de développement logiciel (SDK) imprimera ensuite les logs dans la console. Insérez l’appel suivant avant le démarrage du Kit de développement logiciel (SDK) :
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]AppCenter.logLevel = .verboseAssurez-vous que le « Kit de développement logiciel (SDK) App Center configuré correctement » s’affiche dans les journaux d’activité (au niveau du journal INFO ), puis vérifiez si vous voyez les journaux de requête HTTPS.
Vérifiez que votre appareil est en ligne.
Parfois, les fichiers journaux peuvent prendre quelques minutes avant d'apparaître dans le portail. Attendez un certain temps si c’est le cas.
Pour vérifier si le back-end App Center a reçu vos données, accédez à la section Flux de journal dans le service Analytics . Vos événements doivent apparaître une fois qu’ils ont été envoyés.
Les blocages ne s’affichent pas dans le portail
Vérifiez que vous avez correctement intégré les modules du Kit de développement logiciel (SDK).
Vérifiez que le secret d'application approprié est inclus lors de l'appel de la méthode
start:withServices:. Vous pouvez copier le code exactstart:withServices:en ouvrant l’application dans le portail et en accédant à la page Prise en main .App Center Crashes transfère le journal de plantage uniquement après le redémarrage de l'application. En outre, le Kit de développement logiciel (SDK) ne transfère aucun journal d’incident si vous êtes attaché au débogueur. Vérifiez que le débogueur n’est pas attaché lorsque vous bloquez l’application.
Si vous souhaitez voir les journaux envoyés au serveur principal, changez le niveau de journal par Détaillé dans votre application. Le Kit de développement logiciel (SDK) imprimera ensuite les logs dans la console. Insérez l’appel suivant avant le démarrage du Kit de développement logiciel (SDK) :
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]AppCenter.logLevel = .verboseAssurez-vous que le « Kit de développement logiciel (SDK) App Center configuré correctement » s’affiche dans les journaux d’activité (au niveau du journal INFO ), puis vérifiez si vous voyez les journaux de requête HTTPS.
N’utilisez pas d’autres bibliothèques qui fournissent des fonctionnalités de rapport d’incident. Vous ne pouvez avoir qu’un seul SDK de création de rapports d’incident intégré dans votre application.
Vérifiez que votre appareil est en ligne.
Parfois, les fichiers de log peuvent mettre quelques minutes à apparaître dans le portail. Attendez un certain temps si c’est le cas.
Vérifiez si le Kit de développement logiciel (SDK) a détecté le blocage au démarrage de l’application suivante. Vous pouvez appeler l’API pour vérifier si l’application s’est bloquée lors de la dernière session et affiche une alerte. Vous pouvez également étendre le crash
didSucceedSendingErrorReportcallback pour voir s'il a été correctement envoyé au serveur.Pour vérifier si le serveur principal d'App Center a reçu l'incident, accédez à la section Flux d'enregistrement dans le service Analytics. Vos incidents doivent apparaître là, une fois qu’il a été envoyé.
L’alerte qui demande aux utilisateurs de mettre à jour ne contient pas de chaînes, mais uniquement les clés.
Cela signifie que le AppCenterDistributeResources.bundle n’a pas été ajouté au projet. Assurez-vous d'avoir ajouté le fichier dans votre projet Xcode et qu'il apparaît dans la phase de compilation de la cible de votre application Copy Bundle Resources. Il doit apparaître là si vous avez ajouté le fichier par glisser-déplacer : Xcode le fait automatiquement pour vous. Si le fichier est manquant dans la phase de génération, ajoutez-le afin qu’il soit compilé dans le bundle de votre application.
Si vous utilisez Cocoapods, il s’occupe automatiquement des ressources. Essayez de réinstaller le pod.
Vous voyez des messages dans la console qui indiquent que la base de données n’a pas pu être ouverte
À compter de la version 0.11.0 du Kit de développement logiciel (SDK) iOS, App Center utilise SQLite pour conserver les journaux avant de les envoyer au serveur principal. Si vous regroupez votre application avec votre propre bibliothèque SQLite au lieu d’utiliser celle fournie par le système d’exploitation, vous pouvez voir des erreurs comme celle-ci dans la console [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database et ne voir aucune analyse ni informations d’incident dans le back-end. Mettez à jour le Kit de développement logiciel (SDK) vers la version 0.13.0 ou ultérieure.
Les mises à jour de distribution et les mises à jour in-app bloquent mes tests automatisés de l'interface utilisateur.
Si les mises à jour dans l’application sont activées, elles bloquent vos tests d’interface utilisateur automatisés. Le processus de mise à jour tente 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.
Pourquoi le SDK est distribué en tant que « bibliothèque statique »
Les principaux objectifs de conception pour le Kit de développement logiciel (SDK) App Center doivent avoir un impact minimal sur l’application à l’aide d’App Center et pour avoir un KIT de développement logiciel (SDK) modulaire. Cela entraînerait la distribution du Kit de développement logiciel (SDK) en tant que plusieurs bibliothèques partagées liées dynamiques.
Toutefois, App Center est distribué sous la forme d’une bibliothèque partagée liée statiquement qui est encapsulée dans un faux framework « fat ». Cela signifie que le Kit de développement logiciel (SDK) est lié au moment de la compilation et non au moment du lancement pour de meilleures performances. Le chargement de plusieurs bibliothèques partagées liées dynamiques prend du temps.
Apple recommande d’optimiser le lancement de l’application pour ne pas dépasser 400 ms dans une session WWDC. Ils recommandent spécifiquement des bibliothèques partagées statiques sur des bibliothèques partagées dynamiques pour atteindre cet objectif. La distribution du Kit de développement logiciel (SDK) App Center pour iOS en tant que bibliothèque partagée liée statiquement suit la recommandation d’Apple pour fournir les meilleures performances et un impact minimal sur l’application qui inclut le KIT SDK.
Pour en savoir plus sur les bibliothèques partagées liées statiquement et sur les bibliothèques partagées liées dynamiques, nous vous recommandons la documentation générale d’Apple sur la rubrique.
Pourquoi les fichiers binaires du Kit de développement logiciel (SDK) sont-ils si volumineux ? Je m’inquiète de la taille de mon application
Les fichiers binaires AppCenter sont distribués en tant que frameworks « fat » qui contiennent des tranches pour toutes les architectures iPhone et pour le simulateur iPhone. C’est pourquoi, par exemple , AppCenter.framework est de 10,5 Mo à télécharger.
La taille compilée des fichiers binaires du Kit de développement logiciel (SDK) sera beaucoup plus petite que celle .framework que vous ajoutez à votre application dans Xcode. Gardez également à l'esprit que les versions de production seront plus petites que les builds de débogage.
Pour illustrer cela, nous avons créé une application Objective-C vide avec Xcode 9.2, ajouté les fichiers binaries d'App Center à l’application, et distribué les versions de mise en production sur un iPhone 7 fonctionnant sous iOS 11.3.
Nous avons exécuté les tests sans Bitcode activé et n’avons pas utilisé App Thinning. Vous pouvez utiliser ces techniques pour réduire encore plus la taille binaire de votre application.
Les nombres ci-dessous peuvent varier et dépendre de vos paramètres de build, donc considérez-les comme un guide approximatif. Cela dit, l’ajout du Kit de développement logiciel (SDK) App Center à votre application a un impact minimal sur la taille de votre fichier binaire d’application.
| Modules App Center utilisés | Taille IPA exportée | Taille de l’installation |
|---|---|---|
| Aucun (application vide) | 24 Ko | 132 kB |
| Analytique du Centre d'Applications | 120 Ko | 377 kB |
| Incident d’App Center | 239 Ko | 705 kB |
| Distribution d’App Center | 163 Ko | 528 kB |
| Tous les modules App Center | 314 kB | 930 Ko |
Protéger la valeur secrète de l'App Center
Il app_secret s’agit d’un identificateur de votre application, il est nécessaire de connaître l’application à laquelle le trafic s’applique et il ne peut pas être utilisé pour récupérer ou modifier des données existantes. Si votre app_secret est exposé, le plus grand risque est d’envoyer des données incorrectes à votre application, mais cela n’aura pas d’effet sur la sécurité des données.
Pour récupérer des données sensibles, vous devez fournir un jeton d’application/utilisateur, qui est généré côté client. Il n’existe aucun moyen de sécuriser complètement les données côté client.
Vous pouvez améliorer la sécurité de votre application à l’aide d’une variable d’environnement pour injecter le secret d’application dans votre code. Ainsi, le secret n’est pas visible dans votre code.