Cómo cambiar el id de la aplicación empaquetada de Chrome O Por qué necesitamos el campo clave en el manifiesto.json?


Estoy desarrollando una aplicación empaquetada para chrome Store utilizando pagos de monedero de chrome de una sola vez. Para mi aplicación necesito verificar durante el tiempo de ejecución si el usuario compró la aplicación o no para decidir si debe ser una funcionalidad de demostración o una funcionalidad completa.

De acuerdo con la documentación de la API de identidad de chrome :

Para mantener constante el ID de la aplicación, debe copiar la clave en el manifiesto instalado.json a su manifiesto fuente.

Tengo 2 preguntas sobre esto procedimiento:

1) ¿bajo qué condición puede cambiar el id de mi solicitud? He intentado volver a instalar la aplicación e hizo actualizaciones, pero el id de aplicaciones sigue siendo el mismo.. Si no hay forma de cambiar el id de aplicaciones, ¿por qué necesito este procedimiento?

2) cómo puedo subir mi archivo zip con manifest.json (que contiene" clave " campo) para Chrome dashboard? El problema es que uploader me lanza un error:

Se ha producido un error: No se pudo procesar el elemento.

Clave el campo no está permitido en el manifiesto.

Author: 31415926, 2014-02-01

2 answers

Una vez cargado en Chrome Web Store, su ID de extensión es fijo y no se puede cambiar más.

El ID se deriva del archivo .pem que se creó la primera vez que usted (o Chrome Web Store) empaquetó la extensión en un archivo .crx. Cuando carga una extensión en "modo desempaquetado", se genera automáticamente un ID de manera impredecible. La única forma de controlar el ID de extensión durante el desarrollo es configurando "key" campo en el archivo de manifiesto, como el la documentación sugiere.

Cuando ya haya publicado la extensión en Chrome Web Store, puede obtener fácilmente el valor de este campo "key" utilizando el Visor de fuentes de la extensión de Chrome. Después de instalar la extensión, ve a la página de detalles de Chrome web Store y haz clic en el botón CRX para ver la fuente. Cuando el visor de fuentes de la extensión de Chrome ha cargado la extensión, mostrará la clave en la consola, que puede ser directamente copiado y pegado a su manifiesto.json:

Captura de pantalla: Clave pública (pegar en manifiesto.json para preservar el ID de extensión) crxviewer.js: 528" key":"....", crxviewer.js: 529 Calculated extension ID: jifpbeccnghkjeaalbbjmodiffmgedin

Si tiene no publicado su extensión, o no desea utilizar Chrome Web Store, entonces primero debe generar una clave privada.

  1. Vaya a chrome://extensions/ y habilite el modo Desarrollador.
  2. Haga clic en "Pack extension...", seleccione el directorio de su aplicación / extensión y confirme.
    Ahora tienes una .archivo crx y un .archivo pem. Copia de seguridad de la clave privada (.pem archivo)!
  3. La extensión mencionada puede ser solía obtener la misma información. Alternativamente, visite la demostración en línea en https://robwu.nl/crxviewer / y seleccione el archivo crx que acaba de crear (de nuevo: abra la consola para ver la "clave" y el ID de extensión).

Cuando estés listo para enviar tu aplicación / extensión a Chrome Web Store, sigue los siguientes pasos:

  1. Cree un archivo zip que contenga su extensión (importante: manifest.json debe estar en la raíz, es decir, "directorio/manifiesto.json "es malo", manifiesto.json" es bueno).
    • Añadir el.archivo pem como key.pem!
      (esto es necesario para preservar el ID de extensión)
  2. Cargue la extensión en Chrome Web Store (sin el campo "clave" en el manifiesto.json , el CWS rechazará cualquier carga que contenga un campo "clave").

Para actualizaciones posteriores, " key.pem " no debe añadirse al archivo zip, porque la Chrome Web Store no lo necesita más.

 86
Author: Rob W,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-10 17:34:42

Espero que alguien pueda dar una mejor respuesta que yo. El id de una aplicación es generado por Google cuando la carga por primera vez en la tienda web. Sin embargo, no es el mismo id que tiene cuando se desarrolla localmente. Su navegador Chrome generó algún otro id utilizando algún otro mecanismo.

Cuando está desarrollando localmente desde su directorio de código fuente como una extensión descomprimida, y desea usar el id que chrome web store asignó a su aplicación, coloca la "clave" en su manifiesto y recarga tu app. Esto le ayuda porque muchas API esperan chrome.runtime.id (el id de su aplicación) para que sea el mismo valor que la aplicación en la tienda. Puedes dejar la "clave" en tu manifiesto y será ignorada.

 9
Author: kzahel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-07 16:34:15