| Index: chrome/common/extensions/docs/server2/templates/articles/packaging.html
|
| diff --git a/chrome/common/extensions/docs/server2/templates/articles/packaging.html b/chrome/common/extensions/docs/server2/templates/articles/packaging.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8dbaca0cc06c703125cbd78ada4b12191735db85
|
| --- /dev/null
|
| +++ b/chrome/common/extensions/docs/server2/templates/articles/packaging.html
|
| @@ -0,0 +1,193 @@
|
| +<h1>Packaging</h1>
|
| +
|
| +
|
| +<p>
|
| +This page describes how to package your extension.
|
| +As the <a href="overview.html">Overview</a> explains,
|
| +extensions are packaged as signed ZIP files
|
| +with the file extension "crx"—for example,
|
| +<code>myextension.crx</code>.
|
| +</p>
|
| +
|
| +<p>
|
| +<b>Note:</b>
|
| +You might not need to package your extension.
|
| +If you publish your extension using the
|
| +<a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Developer Dashboard</a>,
|
| +then the only reason to create your own <code>.crx</code> file
|
| +would be to distribute a non-public version—for example,
|
| +to alpha testers.
|
| +You can find information on publishing extensions and apps in the
|
| +Chrome Web Store getting started tutorial, starting at
|
| +<a href="http://code.google.com/chrome/webstore/docs/get_started_simple.html#step5">Step 5: Zip up your app</a>.
|
| +</p>
|
| +
|
| +<p>
|
| +When you package an extension,
|
| +the extension is assigned a unique key pair.
|
| +The extension's ID is based on a hash of the public key.
|
| +The private key is kept private
|
| +and used to sign each version of the extension.
|
| +</p>
|
| +
|
| +
|
| +<h2>Creating a package</h2>
|
| +
|
| +<p>To package an extension:</p>
|
| +<ol>
|
| + <li>
|
| + Bring up the Extensions management page
|
| + by going to this URL:
|
| + <blockquote>
|
| + <b>chrome://extensions</b>
|
| + </blockquote>
|
| + </li>
|
| +
|
| + <li>
|
| + If <b>Developer mode</b> has a + by it,
|
| + click the +.
|
| + </li>
|
| +
|
| + <li>
|
| + Click the <b>Pack extension</b> button.
|
| + A dialog appears.
|
| + </li>
|
| +
|
| + <li>
|
| + In the <b>Extension root directory</b> field,
|
| + specify the path to the extension's folder—for example,
|
| + <code>c:\myext</code>.
|
| + (Ignore the other field;
|
| + you don't specify a private key file
|
| + the first time you package a particular extension.)
|
| + </li>
|
| +
|
| + <li>
|
| + Click <b>OK</b>.
|
| + The packager creates two files:
|
| + a <code>.crx</code> file,
|
| + which is the actual extension that can be installed,
|
| + and a <code>.pem</code> file,
|
| + which contains the private key.
|
| + </li>
|
| +</ol>
|
| +
|
| +
|
| +<p>
|
| +<b>Do not lose the private key!</b>
|
| +Keep the <code>.pem</code> file secret and in a safe place.
|
| +You'll need it later if you want to do any of the following:
|
| +</p>
|
| +<ul>
|
| +<li><a href="#update">Update</a> the extension</li>
|
| +<li><a href="#upload">Upload</a> the extension to the Chrome Web Store</li>
|
| +</ul>
|
| +
|
| +<p>
|
| +If the extension is successfully packaged, you'll see a dialog like this
|
| +that tells you where to find
|
| +the <code>.crx</code> and <code>.pem</code> files:</p>
|
| +</p>
|
| +
|
| +<img src="{{static}}/images/package-success.gif"
|
| + width="554" height="208" />
|
| +
|
| +
|
| +<h2 id="update">Updating a package</h2>
|
| +
|
| +<p>To create an updated version of your extension:</p>
|
| +<ol>
|
| + <li>
|
| + Increase the version number in <code>manifest.json</code>.
|
| + </li>
|
| +
|
| + <li>
|
| + Bring up the Extensions management page
|
| + by going to this URL: <b>chrome://extensions</b>
|
| + </li>
|
| +
|
| + <li>
|
| + Click the <b>Pack extension</b> button.
|
| + A dialog appears.
|
| + </li>
|
| +
|
| + <li>
|
| + In the <b>Extension root directory</b> field,
|
| + specify the path to the extension's folder—for example,
|
| + <code>c:\myext</code>.
|
| + </li>
|
| +
|
| + <li>
|
| + In the <b>Private key file</b> field,
|
| + specify the location of the
|
| + already generated <code>.pem</code> file for this extension—for
|
| + example, <code>c:\myext.pem</code>.
|
| + </li>
|
| +
|
| + <li>
|
| + Click <b>OK</b>.
|
| + </li>
|
| +</ol>
|
| +
|
| +<p>If the updated extension is successfully packaged, you'll see a dialog like this:</p>
|
| +
|
| +<img src="{{static}}/images/update-success.gif"
|
| + width="298" height="160" />
|
| +
|
| +
|
| +<h2 id="upload"> Uploading a previously packaged extension to the Chrome Web Store</h2>
|
| +
|
| +<p>
|
| +You can use the Chrome Developer Dashboard
|
| +to upload an extension that you've previously packaged yourself.
|
| +However, unless you take special steps,
|
| +the extension's ID in the Chrome Web Store
|
| +will be different from its ID in the package you created.
|
| +This different ID might be a problem if you've
|
| +distributed your extension package,
|
| +because it allows users to install multiple versions of your extension,
|
| +each with its own local data.
|
| +</p>
|
| +
|
| +<p>
|
| +If you want to keep the extension ID the same,
|
| +follow these steps:
|
| +</p>
|
| +
|
| +<ol>
|
| + <li> Rename the private key that was generated
|
| + when you created the <code>.crx</code> file to <code>key.pem</code>. </li>
|
| + <li> Put <code>key.pem</code> in the top directory
|
| + of your extension. </li>
|
| + <li> Compress that directory into a ZIP file. </li>
|
| + <li> Upload the ZIP file using the
|
| + <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Developer Dashboard</a>. </li>
|
| +</ol>
|
| +
|
| +
|
| +<h2>Packaging at the command line</h2>
|
| +
|
| +<p>
|
| +Another way to package extensions
|
| +is by invoking <code>chrome.exe</code> at the command line.
|
| +Use the <code>--pack-extension</code> flag
|
| +to specify the location of the extension's folder.
|
| +Use <code>--pack-extension-key</code>
|
| +to specify the location of the extension's private key file.
|
| +For example:
|
| +</p>
|
| +
|
| +<pre>
|
| +chrome.exe --pack-extension=c:\myext --pack-extension-key=c:\myext.pem
|
| +</pre>
|
| +
|
| +<p>
|
| +To suppress the dialog,
|
| +add <code>--no-message-box</code> to the command.
|
| +</p>
|
| +
|
| +<h2>Package format and scripts</h2>
|
| +<p>
|
| +For more information on the format, as well as pointers to scripts you can use
|
| +to create <code>.crx</code> files, see <a href="crx.html">CRX Package Format</a>.
|
| +</p>
|
|
|