插件未在 Android AMO 网站中列出,但在 Windows 平台下列出

Add-on not listed in Android AMO site, but listed under Windows platform

我们的开发者前段时间向AMO提交了一个WebExtension插件,该插件是公开的。我可以使用 Firefox Add-ons page. I tried to install the add-on on my mobile Firefox browser. I searched in the add-ons store, but it is not available. It appears that Firefox for Android goes to Android Add-ons page 上的搜索找到它。我从桌面搜索了相同的 Android 附加组件页面,但找不到扩展。我被告知加载项是上次提交时选择了 "All Platforms" 选项。我找不到任何特定于向 Android 附加组件页面提交附加组件的文档。他们有什么不同吗?会不会是提交插件的时候出错了?或者,是清单文件的原因吗?

以下是 manifest.json 文件中的部分:

{
    "manifest_version": 2,
    "name": "Extension Name",
    "short_name": "EXTNSHORTN",
    "version": "0.0.1",

    "description": "some description",
    "icons": {
        "19": "images/icon19.png",
        "38": "images/icon38.png",
        "128": "images/icon.png"
    },

    "applications": {
        "gecko": {
            "id": "abc@def.com",
            "strict_min_version": "48.0"
        }
    },

    "background": {
        "scripts": [
            "a.js", "b.js", "c.js", "d.js", "e.js", "f.js", "g.js", "h.js",
            "background.js"
        ]
    },

    "permissions": [
        "alarms",
        "idle",
        "tabs",
        "activeTab",
        "<all_urls>",
        "notifications"
    ],
    "browser_action": {
        "browser_style": false,
        "default_icon": "images/icon.png",
        "default_title": "same title",
        "default_popup": "popup1.html"
    },
    "content_scripts": [
        {
            "matches": ["https://www.exmple.com/*"],
            "js": ["p.js"]
        }
    ],
    "web_accessible_resources": [
        "web_accessible/*"
    ]
}

扩展名是Engrip Extension。我们如何解决这个问题,以便桌面版 Firefox 和 Android?

的 Firefox 都可以使用相同的扩展

WebExtension manifest.json 文件没有任何方法来明确指定它们与哪些应用程序兼容。这是加载项上传到 AMO 时应指定的信息。混淆可能是 "Firefox for Android" 被认为是不同的 "Application",而不是 "Platform"。在这种情况下,应用程序是可以加载您的附加组件的程序。例如:"Firefox"、"Firefox for Android"、"Thunderbird"等。平台具体为"Linux"、"Mac OS X"、"Windows"。是的,Android 实际上是一个平台,但这只是它的组织方式。

幸运的是,您可以从附加组件的 AMO 控制面板更改当前版本支持的应用程序。

  • 从您的附加组件的主开发者控制台页面 select "Manage Status & Versions"(在左侧的蓝色框中,就在分隔线上方)。直接的URL应该是this
  • 在"Listed versions"下➞"Currently on AMO" select最新版本。这应该是 "Version 0.10.9".
  • 在 "Manage Version xxx" 下的那一页➞"Compatibility" select "Add Another Application…"
  • Select "Firefox for Android" 并填写您兼容的版本。
  • 保存您的更改。

它将看起来像:

Android 的 Firefox 对您的 manifest.json 有额外要求:必须在 browser_specific_settings [=17] 下设置带有 idgecko 部分=].在 Firefox 48 之前的桌面上需要额外的设置,在 Android 上仍然需要,并在 Chrome 上创建一个警告,所以如果你也想要构建一个没有它的不同版本发布到 Chrome。有点无益,没有这个 id AMO 仍然让你声明你的扩展是 Android 兼容的,但是没有列出它并且没有指出它列出失败的原因是你的清单缺少特定于浏览器的 ID。

由于您已经发布了没有 ID 的扩展程序,系统会自动为您提供一个 ID,您最好不要更改它,否则您将发布一个与第一个不同的新扩展程序。因此,您需要找出您获得的 ID。您可以通过从 addons.mozilla.org 将您的扩展程序安装到桌面 Firefox 中来执行此操作,转到 about:debugging ,单击“This Firefox”,然后在“Extensions”下查找您的扩展程序的“Extension ID”。这就是您需要添加引号并将其放入清单的正确部分以使其适用于 Android:

"browser_specific_settings": {
  "gecko": {
    "id": "{long-uuid-goes-here}"
  }
}