This page describes how to package your extension.
As the Overview explains,
extensions are packaged as signed ZIP files
with the file extension "crx" —
for example, myextension.crx
.
When you package an extension, the extension is assigned a unique key pair. The public key is used as the identifier for the extension. The private key is kept private and used to sign each version of the extension.
[PENDING: Perhaps mention that once the gallery is up, creating and updating a package will be much easier. Also refer to instructions on submitting an extension for inclusion in the gallery.]
Creating a package
To package an extension:
-
Bring up the Extensions management page
by going to this URL:
chrome://extensions
- Click the Pack extension button. A dialog appears.
-
In the Extension root directory field,
specify the path to the extension's folder —
for example,
c:\myext
. (Ignore the other field; you don't specify a private key file the first time you package a particular extension.) -
Click OK.
The packager creates two files:
a
.crx
file, which is the actual extension that can be installed, and a.pem
file, which contains the private key.
Do not lose the private key!
Keep the .pem
file secret and in a safe place.
You'll need it later if you want to do any of the following:
- Update the extension
- Import the extension into the extensions gallery, once the gallery becomes available
If the extension is successfully packaged, you'll see a dialog like this
that tells you where to find
the .crx
and .pem
files:
Updating a package
To create an updated version of your extension:
-
Increase the version number in
manifest.json
. - Bring up the Extensions management page by going to this URL: chrome://extensions
- Click the Pack extension button. A dialog appears.
-
In the Extension root directory field,
specify the path to the extension's folder —
for example,
c:\myext
. -
In the Private key file field,
specify the location of the
already generated
.pem
file for this extension — for example,c:\myext.pem
. - Click OK.
If the updated extension is successfully packaged, you'll see a dialog like this:
Packaging at the command line
Another way to package extensions
is by invoking chrome.exe
at the command line.
Use the --pack-extension
flag
to specify the location of the extension's folder.
Use --pack-extension-key
to specify the location of the extension's private key file.
For example:
chrome.exe --pack-extension=c:\myext --pack-extension-key=c:\myext.pem
To suppress the dialog,
add --no-message-box
to the command.
Ruby script
You can also use a Ruby script to create packages. See the following thread for details:
Chromium-extensions: extension packaging script