0Pricing
Browser Extensions Development (Chrome & Edge) · درس

التعبئة والنشر في متاجر متعددة

تعلّم كيفية تجميع قاعدة شيفرة إضافة واحدة وإرسالها إلى كل من Chrome Web Store ومتجر Microsoft Edge Add-ons.

التعبئة والنشر في متاجر متعددة درس مجاني في Browser Extensions Development (Chrome & Edge) على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في 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/7) وفتح باقي دورة 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/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Browser Extensions Development (Chrome & Edge)؟

لا تُشترط خبرة سابقة. Browser Extensions Development (Chrome & Edge) على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «التعبئة والنشر في متاجر متعددة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Browser Extensions Development (Chrome & Edge) هذا؟

نعم. كل درس في Browser Extensions Development (Chrome & Edge) يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعديلات Manifest لتوافق المتصفحات
  2. استخدام WebExtension Polyfills
  3. استكشاف أطر تطوير الإضافات
  4. التعبئة والنشر في متاجر متعددة
← العودة إلى Browser Extensions Development (Chrome & Edge)