Je développe une application packagée pour un magasin Chrome utilisant des paiements de portefeuille chromés uniques. Pour mon application, je dois vérifier au moment de l'exécution si l'utilisateur l'a achetée ou non, qu'il s'agisse d'une fonctionnalité de démonstration ou d'une fonctionnalité complète.
Selon la documentation de l’API chrome identity :
pour que l’ID d’application reste constant, vous devez copier la clé dans le fichier installé manifest.json à votre manifeste source.
J'ai 2 questions sur cette procédure:
1) sous quelle condition l'id de mon application peut changer? J'ai essayé de réinstaller l'application et mis à jour, mais l'identifiant d'application reste le même. S'il n'y a aucun moyen de changer l'identifiant d'application, pourquoi ai-je besoin de cette procédure?
2) Comment puis-je télécharger mon archive Zip avec manifest.json (qui contient le champ "clé") sur un tableau de bord chrome? Le problème est que le téléchargeur jette une erreur sur moi:
Une erreur est survenue: Échec du traitement de votre article.
le champ clé n'est pas autorisé dans le manifeste.
Une fois téléchargé sur le Chrome Web Store, votre numéro de poste est corrigé et ne peut plus être modifié.
L'ID est dérivé du fichier .pem
créé la première fois que vous (ou le Chrome Web Store) avez compressé l'extension dans un fichier .crx
. Lorsque vous chargez une extension en "mode décompressé", un identifiant est automatiquement généré de manière imprévisible. Le seul moyen de contrôler l'ID d'extension pendant le développement consiste à définir le champ "key"
dans le fichier manifeste, comme le suggère la documentation .
Lorsque vous avez déjà publié l'extension dans le Chrome Web Store, vous pouvez facilement obtenir la valeur de ce champ "key"
à l'aide de Chrome Extension Source Viewer . Après avoir installé l’extension, accédez à la page de détails de votre magasin Web Chrome et cliquez sur le bouton CRX pour afficher la source. Lorsque le visualiseur source de l’extension Chrome a chargé l’extension, il affiche la clé dans la console, qui peut être directement copiée-collée dans votre fichier manifest.json:
Si vous avez non publié votre extension ou si vous ne souhaitez pas utiliser le Chrome Web Store, vous devez d'abord générer une clé privée.
chrome://extensions/
et activez le mode développeur..pem
)!Lorsque vous êtes prêt à soumettre votre application/extension au Chrome Web Store, procédez comme suit:
manifest.json
doit être à la racine, c’est-à-dire que "répertoire/manifest.json" est incorrect, "manifest.json" est bon) .key.pem
!"Key.pem" ne doit pas être ajouté au fichier Zip, car le Chrome Web Store n'en a plus besoin.
Espérons que quelqu'un puisse donner une meilleure réponse que moi. L'identifiant d'une application est généré par Google lorsque vous la téléchargez pour la première fois dans la boutique en ligne. Cependant, ce n'est pas le même identifiant que vous avez lorsque vous développez localement. Votre navigateur Chrome a généré un autre identifiant en utilisant un autre mécanisme.
Lorsque vous développez localement à partir de votre répertoire de code source en tant qu'extension décompressée et que vous souhaitez utiliser l'ID attribué par le magasin Web Chrome à votre application, vous insérez la "clé" dans votre manifeste et rechargez votre application. Cela vous aide car de nombreuses API s'attendent à ce que chrome.runtime.id (l'id de votre application) ait la même valeur que l'application du magasin. Vous pouvez laisser la "clé" dans votre manifeste et celle-ci sera ignorée.
Pour tous ceux qui rencontrent des problèmes pour charger l'extension décompressée avec le champ clé dans le fichier manifest.json
.
Supprimez votre extension publiée si elle est dans votre liste d’extensions mais désactivée. Sinon, votre extension dev locale ne se chargera pas et aucune erreur ne sera affichée. La raison en est que chrome détecte les clés en double pour l'extension et l'ignore silencieusement.