web-dev-qa-db-fra.com

L'extension installée à partir de la boutique en ligne Chrome génère une erreur "Le package n'est pas valide. Détails:" Impossible de charger l'extension avec le nom de fichier ou de répertoire _metadata ... "

Lorsqu'un CRX est ajouté à la boutique en ligne Chrome, Google ajoute un répertoire _metadata à la crx. Les anciennes versions de Chrome ne connaissent pas ce répertoire (testé sur Chrome 27) et émettent cette erreur:

Package is invalid. Details: 'Cannot load extension with file or directory name
_metadata. Filenames starting with "_" are reserved for use by the system.'.

Vous pouvez voir cette erreur si vous essayez d'installer cette extension sur une ancienne version de Chrome: https://chrome.google.com/webstore/detail/allcast-receiver/hjbljnpdahefgnopeohlaeohgkiidnoe

Une bonne explication: https://groups.google.com/a/chromium.org/d/msg/chromium-apps/huDqSeaQx3Q/Z5GOMxA7lQIJ

Y at-il une solution de contournement pour cela? Cela rend impossible la prise en charge des anciennes versions de Chrome.

12
Don Rhummy

En tant que développeur d'extension, vous ne pouvez pas contourner ce bogue, car le répertoire est ajouté par le Chrome Web Store (CWS). Vous pouvez contourner le bogue en n'utilisant pas le CWS pour distribuer l'extension, mais cette extension ne peut pas être utilisée par la majorité des utilisateurs de Chrome, car Google a activement essayé d'empêcher les utilisateurs d'obtenir des extensions en dehors du CWS.

L'équipe CWS est la seule à pouvoir résoudre le bogue. Ils doivent servir les fichiers crx sans répertoire _metadata si l'agent d'utilisateur ne prend pas en charge le répertoire (Chrome 30-). Ce bogue est suivi sur https://code.google.com/p/chromium/issues/detail?id=377278 . Jusqu'à présent, la réponse est:

Nous ne pouvons pas réparer les anciennes versions de Chrome. La version Web de la boutique en ligne a été suivie à b/15176392, mais il est peu probable que le support pour Chrome 30 redevienne disponible.

Commencez par lancer le problème pour être averti des mises à jour et signaler que vous souhaitez vraiment que le bogue soit corrigé. Si suffisamment d'utilisateurs/développeurs se plaignent, alors Google pourrait corriger le bogue.

11
Rob W

Vous pouvez essayer de décompresser le fichier CRX (modifiez le nom du suffixe en ".Zip" si nécessaire) puis en chrome: Paramètres -> Extensions cochez "Mode développeur", choisissez "charger l’extension décompressée .." et sélectionnez le dossier extrait.

P.S. J'ai dû renommer les dossiers commençant par "_" (trait de soulignement) et supprimer la ligne "default_locale":"en", Du fichier JSON du manifeste pour que cela fonctionne.

11
Adam l

Cette réponse s'applique aux fichiers CRX que vous:

  • Téléchargé depuis le Chrome Web Store
  • Essaient de charger unpacked

Le dossier _locales ne devrait pas poser de problèmes. Tant que le manifeste contient la clé default_locale, Chrome chargera l'extension décompressée comme prévu.

_metadata est le dossier problématique. Il contient des hachages cryptographiques de tous les fichiers d’extension afin d’empêcher toute altération de ces fichiers. Il est automatiquement ajouté par CWS. Cela n’a aucun sens dans le contexte d’une extension décompressée, et n’a aucune autre utilisation, donc ce dossier doit simplement être supprimé .

3
Xan

Certaines personnes ont trouvé des travaux de réinitialisation. Certains ont trouvé que vider la corbeille fonctionnait. Aucun n'a fonctionné pour moi. J'ai réinstallé le chrome aussi ne fonctionnait pas. 

Au lieu de cela, cela a fonctionné pour moi (comme ce que Xan a dit): je télécharge le fichier .crx, le décompresse, efface le dossier

_metadata

Puis installez-le manuellement. Cela a fonctionné pour moi. 

0
George