0Pricing
Browser Extensions Development (Chrome & Edge) · レッスン

複数ストア向けのパッケージ化と公開

単一の拡張機能コードベースをパッケージ化し、Chrome Web StoreとMicrosoft Edge Add-onsストアの両方に申請する方法を学びます。

「複数ストア向けのパッケージ化と公開」はCoddyKit上の無料Browser Extensions Development (Chrome & Edge)レッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはBrowser Extensions Development (Chrome & Edge)学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Browser Extensions Development (Chrome & Edge)コースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

Why Publish to Multiple Stores

Once your extension works across browsers, the next step is distribution. The two largest Chromium stores are the Chrome Web Store and the Microsoft Edge Add-ons store.

Publishing to both maximizes reach with almost no extra code, since both consume the same Manifest V3 package.

One Codebase, Two Packages

You usually ship the same ZIP to both stores. Small differences (like minimum versions or store-specific keys) can be handled with a build script.

  • Keep one source tree
  • Produce store-specific builds via scripts
  • Avoid maintaining forks
{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.4.0",
  "minimum_chrome_version": "102"
}

Building the ZIP

Stores accept a ZIP archive of your extension root (the folder containing manifest.json). Never zip the parent folder.

A simple npm script keeps this repeatable.

node -e "const cp=require('child_process'); cp.execSync('cd dist && zip -r ../extension.zip .')"
console.log('Created extension.zip');

Version Numbers Matter

Both stores require the version in the manifest to be strictly higher than the currently published version for each update.

Use semantic-like dotted numbers: 1.4.0 then 1.4.1.

const fs = require('fs');
const m = JSON.parse(fs.readFileSync('manifest.json', 'utf8'));
const parts = m.version.split('.').map(Number);
parts[parts.length - 1] += 1;
m.version = parts.join('.');
fs.writeFileSync('manifest.json', JSON.stringify(m, null, 2));
console.log('Bumped to', m.version);

Chrome Web Store Submission

In the Chrome Developer Dashboard you upload the ZIP, fill listing details (description, screenshots, category) and submit for review.

  • One-time developer registration fee
  • Automated plus manual review
  • Permission justifications required

Edge Add-ons Submission

The Partner Center hosts Edge submissions. Registration is free. You upload the same ZIP and provide listing metadata.

Edge review tends to focus on policy compliance and accurate descriptions.

Store Listing Assets

Both stores need marketing assets:

  • Icon (128x128)
  • Screenshots (1280x800 recommended)
  • A small and large promo tile (optional)
  • Short and detailed descriptions

Prepare these once and reuse across stores.

Automating with the CWS API

The Chrome Web Store API lets you upload and publish from CI. You authenticate with OAuth and call the REST endpoints.

// Pseudocode using fetch in a CI script
const token = await getAccessToken();
await fetch('https://www.googleapis.com/upload/chromewebstore/v1.1/items/' + itemId, {
  method: 'PUT',
  headers: { Authorization: 'Bearer ' + token, 'x-goog-api-version': '2' },
  body: zipBuffer
});
console.log('Uploaded to CWS');

Automating Edge Submissions

Edge offers the Add-ons API for CI uploads. You obtain an access token, upload the package, then trigger publishing.

This mirrors the Chrome flow, so a shared deploy script can target both.

// Upload draft, then publish
await fetch(baseUrl + '/products/' + productId + '/submissions/draft/package', {
  method: 'POST',
  headers: { Authorization: 'Bearer ' + token },
  body: zipBuffer
});
console.log('Edge draft uploaded');

Handling Review Rejections

Common rejection causes:

  • Requesting permissions you do not use
  • Vague privacy disclosures
  • Mismatched description and behavior

Request only the minimum permissions and document why each is needed.

Keeping Both Stores in Sync

To avoid drift, publish from a single tagged release. Tag the commit, build the ZIP, then push to both stores in the same pipeline run.

This guarantees identical behavior for all your users.

Quick Check

Test your understanding of multi-store publishing.

Recap

You learned to package one codebase and ship it to both Chromium stores:

  • Zip the extension root, never the parent folder
  • Bump the version on every update
  • Reuse listing assets across stores
  • Automate uploads with the CWS and Edge APIs
  • Request minimal permissions to ease review

よくある質問

「複数ストア向けのパッケージ化と公開」レッスンは無料ですか?

はい。「複数ストア向けのパッケージ化と公開」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Browser Extensions Development (Chrome & Edge)コースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Browser Extensions Development (Chrome & Edge)コースには全4レッスンが含まれています。

「複数ストア向けのパッケージ化と公開」で何を学びますか?

単一の拡張機能コードベースをパッケージ化し、Chrome Web StoreとMicrosoft Edge Add-onsストアの両方に申請する方法を学びます。 ブラウザで直接実行するハンズオンコードでBrowser Extensions Development (Chrome & Edge)を演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Browser Extensions Development (Chrome & Edge)を始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのBrowser Extensions Development (Chrome & Edge)は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「複数ストア向けのパッケージ化と公開」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このBrowser Extensions Development (Chrome & Edge)レッスンでコードを書いて実行できますか?

はい。すべてのBrowser Extensions Development (Chrome & Edge)レッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. クロスブラウザー向けマニフェスト調整
  2. WebExtensionポリフィルの利用
  3. 拡張機能開発フレームワークを探る
  4. 複数ストア向けのパッケージ化と公開
← Browser Extensions Development (Chrome & Edge)に戻る