extension.dev 是 Extension.js 的贊助方,可以在同一個專案裡完成發佈、商店送審與分享。它的文件涵蓋
extension build 之後的步驟。先決條件
- 建立一個 Firefox 帳號,並在 addons.mozilla.org 登入。
- 接受 Firefox Add-on Distribution Agreement。在你接受之前,API key 頁面都會被鎖住——即使這個帳號已經透過網頁介面發佈附加元件很多年了。
產生 API 憑證
- 開啟 AMO API key 頁面。
- 產生新的憑證。
- 複製 JWT issuer。它的形式是
user:12345678:987。多數工具口中的 API key 指的就是這個值。 - 立刻複製 JWT secret。
附加元件 ID 與第一次提交
附加元件 ID(AMO 稱它為 GUID)在每一次提交中識別你的附加元件。它同時也是要填進browser_specific_settings.gecko.id 的那個值。Extension.js 在這個鍵存在時會讀取它,但從不替你寫入。
規則取決於發佈頻道:
- Listed(在 AMO 上公開上架):必須已經有一個 GUID。請先在 開發者中心 手動完成第一次提交, 之後再自動化後續更新。
- Unlisted(簽署後自行發佈):第一次提交時把 GUID 留空,AMO 會建立一個新的附加元件並指派 GUID。
listed,結果不是失敗(沒有
GUID),就是發佈出一個你未必想要的公開上架(有設定 GUID)。
新附加元件的 manifest 要求
新的附加元件必須在 manifest 中宣告資料蒐集權限,否則 AMO 會拒絕這次提交:browser_specific_settings.gecko.data_collection_permissions 時,針對 Firefox
目標的正式版建置會發出警告。
只有在擴充功能確實不傳輸任何資料時才使用 ["none"]。這份宣告、STORE.md
的隱私章節與程式碼三者必須一致。完整規則請見
Firefox 商店就緒。
打包建置所需的原始碼 zip
當上傳的內容經過壓縮或打包時,AMO 會要求提供原始碼 zip——Extension.js 的正式版建置正屬於這種情況。用下面的指令產生:STORE.md 的審查者說明章節裡講清楚如何從原始碼建置。

