Univers Apple

04
Févr.
2021

Corriger les problèmes du Mac App Store sur Mojave

Publié par sky

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.

Une seule application App Store dans ISA, c'est bon !

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.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Captcha indisponible
Pour valider le formulaire, vous devez confirmer que vous êtes bien une personne. Actuellement, la fonctionnalité est indisponible. Vous devez activer le service ReCaptcha dans le gestionnaire des cookies, et donc consentir à l'utilisation de ses cookies.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
ReCaptcha  En savoir plus
Permet de valider que les visiteurs sont bien des humains lorsqu'ils valident des formulaires.
 
Tout accepter Tout refuser Gérer