Corriger les problèmes du Mac App Store sur Mojave
La version Mojave du Mac App Store est une catastrophe, il faut le bien le dire. Autant la version High Sierra fonctionnait bien et sans soucis, autant la version Mojave est un nid à problèmes. Et Apple n'a pas jugé bon de corrigé cela, alors qu'il semble que cela a été fait pour Catalina, dont l'application App Store est moins sujette aux bugs.
Ces derniers temps, l'application étaient complètement buggée, avec les symptômes suivant :
- Onglet des achats n'affichant aucun contenu
- Onglet des mises à jour n'affichant aucun contenu (malgré 6 mises à jour en attente)
- Impossible de se déconnecter (ou de se connecter)
- Impossible de télécharger une application
Et pour couronner le tout, la console renvoyait une floppée d'informations et d'erreurs à chaque fois que je tentais une action.
En tâtonnant, trouvant des bribes d'information ici et là sur Internet, j'ai pu corrigé un problème, puis un autre sans jamais tout débloquer d'un coup. Surtout, rapidement, à chaque test, l'application revenait dans cet état de panique générale ou plus rien ne fonctionnait.
Heureusement, j'ai fini par trouver une solution fonctionnelle, me rendant accès au Mac App Store.
Attention, en touchant à des fichiers systèmes, vous prenez le risque de planter votre macOS. Les commandes sont données à titre indicatif, avec le maximum d'explication afin que vous sachiez ce que vous faites. Vous les exécutez à vos risques et périls ! Evidemment, je ne pourrai être tenu pour responsable en cas de soucis.
1/ Limiter le nombre de version de l'application
La première chose à faire est de limiter le nombre d'exemplaires de l'application App Store dont vous disposez sur vos disques.
Vous pouvez trouver toutes les versions de l'application via Information Système Apple. Vous pouvez y accéder en allant dans le menu Pomme > À propos de ce Mac > Rapport Système...
Une fois l'application ouverte, il suffit d'aller dans la section Logiciels, dans la sous-section Applications. Patientez, macOS charge la liste de vos applications.
Puis descendez au niveau d'App Store pour voir le nombre de versions dont vous disposez.
Pour ma part, j'avais toujours un CCC de Mojave mais aussi un clone de ma version de High Sierra avant le passage à Mojave. Ces deux clones avaient tout deux, une version de l'App Store. J'ai simplement compressé les deux applications, afin de les conserver dans leurs dossiers, puis supprimer les originaux, afin de ne garder que la version de mon Mojave principal.
Si un jour, je dois m'en resservir, je n'aurais qu'à les décompresser pour les réutiliser.
2/ Supprimer tous les fichiers de préférences et de caches de l'application
Quittez l'application. Maintenant il faut s'attaquer au nettoyage des nombreux fichiers que l'App Store utilise comme préférences et comme caches. Plutôt que de supprimer directement les fichiers, je vous invite à en faire une sauvegarde, au cas où. Je ne le ré-indique pas à chaque fois, à vous de faire le nécessaire, mais attention, certains fichiers peuvent avoir le même nom, il faudra donc être organisé dans votre sauvegarde.
Je vous donne les instructions via le terminal, mais vous pouvez aussi tenter via le Finder. Il suffit pour cela de suivre les mêmes chemins. Si les fichiers n'existent pas, ne vous en faites pas, et continuez.
Supprimer les fichiers de préférences de votre dossier utilisateur :
rm ~/Library/Preferences/com.apple.storeagent.plist
rm ~/Library/Preferences/com.apple.commerce.plist
rm ~/Library/Preferences/com.apple.appstore.plist
puis dans le dossier ByHost
rm -f ~/Library/Preferences/ByHost/com.apple.appstore*
rm -f ~/Library/Preferences/ByHost/com.apple.commerce*
rm -f ~/Library/Preferences/ByHost/com.apple.appstore*
Puis les fichiers Containers dédiés com.apple.appstore et com.apple.appstore.PluginXPCService, toujours dans votre dossier utilisateur
rm -rf ~/Library/Containers/com.apple.appstore*
Et enfin le dossier de cache de votre dossier utilisateur
rm -r ~/Library/Caches/com.apple.appstore
Maintenant, attaquons le dossier système, et commençons par supprimer les préférences ... encore. Il faudra cette fois ci, avoir les droits administrateurs.
sudo rm /Library/Preferences/com.apple.commerce.plist
Puis le contenu du dossier Trust Settings situé dans le dossier Security
cd /Library/Security/
rm -r Trust\ Settings/*
Enfin, attaquons la partie la moins simple, mais l'une des plus importante. Il va falloir rechercher dans le dossier /private/var/folders/ les fichiers correspondant à l'App Store. Le soucis, c'est que les noms des dossiers intermédiaires sont aléatoirement (ou procéduralement) définis. Pensez à modifier les chemins que je vous indique avec les noms des dossiers de votre Mac.
cd /private/var/folders
affichez en le contenu
ls -l
vous devriez obtenir des dossiers dont le nom est constitué de deux lettres.
total 0
drwxr-xr-x@ 3 root wheel 96 26 jul 2018 kg
drwxr-xr-x@ 23 root wheel 736 2 avr 2020 zz
Le dossier zz est le dossier utilisé pour le système, les autres dossiers vont correspondre chacun à un utilisateur.
Vous pouvez en regarder le contenu pour trouver celui qui correspond à votre compte, si vous avez plusieurs utilisateurs sur la machine.
ls -l kg
et voici le résultat
total 0
drwxr-xr-x@ 5 sky staff 160 26 sep 15:03 2q_j7t451873nh4kv0ryk3fc0000gn
Le dossier qui se situe dedans appartient à sky, cela tombe bien, c'est mon compte.
Il va falloir fouiller dans le dossier pour trouver les dossiers et fichiers qui correspondent à l'App Store. Rentrons dans le dossier
cd kg/2q_j7t451873nh4kv0ryk3fc0000gn
Puis exécutons une recherche
find . -name "*AppStore*"
Le résultat peut prendre du temps, il y a énormément de petits fichiers dans ces dossiers.
find: ./0/com.apple.progressd/ClassKit: Operation not permitted
find: ./0/com.apple.Safari/SafariFamily: Operation not permitted
find: ./0/com.apple.LaunchServices.dv: Operation not permitted
find: ./0/com.apple.nsurlsessiond: Operation not permitted
find: ./0/com.apple.routined/dv: Operation not permitted
./T/com.apple.AppStore
find: ./C/com.apple.WebKit.WebContent.Sandbox: Operation not permitted
./C/com.apple.appstore/com.apple.AppStore
find: ./C/com.apple.QuickLook.thumbnailcache: Operation not permitted
find: ./C/com.apple.WebKit.Networking.Sandbox: Operation not permitted
Ne regardez que les lignes ne se terminant pas par "Operation not permitted". Je vois deux résultats positifs, dans les dossiers T et C.
Je n'ai plus qu'à supprimer les dossiers
rm -r T/com.apple.AppStore
rm -r C/com.apple.appstore
Maintenant, il faut faire la même chose dans le dossier utilisé par le système.
cd ../..
ls -l zz
vous devriez voir les dossiers des utilisateurs système, celui qui nous intéresse est le premier, appartenant à root
drwxr-xr-x@ 6 root wheel 192 26 sep 15:02 zyxvpxvq6csfxvn_n0000000000000
Rentrons dedans
cd zz/zyxvpxvq6csfxvn_n0000000000000
Il faudra recommencer les mêmes commandes, en les préfixant par sudo, pour les exécuter en tant qu'administrateur, soit
sudo find . -name "*AppStore*"
Avec un résultat
./C/com.apple.appstore
C'est parti pour une suppression
sudo rm -r C/com.apple.appstore
3/ Finalisation
Le travail de nettoyage est désormais terminé. Mais, surtout ne relancez pas l'App Store de suite, sous peine de devoir refaire tout le nettoyage. Avant il faut redémarrer votre Mac.
Au redémarrage, l'App Store devrait être de nouveau fonctionnel.