0

我们的开发人员不久前向 AMO 提交了一个 WebExtension 插件,该插件是公开可用的。我可以使用Firefox Add-ons page上的搜索找到它。我试图在我的移动 Firefox 浏览器上安装插件。我在附加组件商店中搜索,但它不可用。似乎 Firefox for Android 进入了Android Add-ons page。我从桌面搜索了相同的 Android 附加组件页面,但找不到该扩展。有人告诉我,上次提交附加组件时选择了“所有平台”选项。我找不到任何特定于向 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 都可以使用相同的扩展?

4

2 回答 2

1

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

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

  • 从您的附加组件的主开发者控制台页面中选择“管理状态和版本”(在左侧的蓝色框中,就在分隔线上方)。直接网址应该是这个
  • 在“列出的版本”➞“当前在 AMO”下选择最新版本。这应该是“版本 0.10.9”。
  • 在该页面上的“管理版本 xxx”➞“兼容性”下选择“添加另一个应用程序...”
  • 选择“Firefox for Android”并填写您兼容的版本。
  • 保存您的更改。

它看起来像:

添加兼容的应用程序

于 2017-02-23T18:45:22.423 回答
0

Firefox for Android 对您有一个额外的要求manifest.json根据 Mozilla 的 Extension Workshop必须在下面设置一个gecko带有 的部分(“你什么时候需要一个附加 ID?...使用 Firefox for Android。”)这也提到了他们的Android 清单。在 Firefox 48 之前的桌面上曾经需要额外的设置,但在 Android 上仍然需要,并在 Chrome 上创建一个警告,因此如果您还发布到 Chrome,您可能想要构建一个没有它的不同版本。有点无益的是,没有这个AMO 仍然可以让你声明你的扩展是 Android 兼容的,但是没有列出它并且没有指出它列出失败的原因是你的清单缺少浏览器特定的 id。idbrowser_specific_settings id

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

"browser_specific_settings": {
  "gecko": {
    "id": "{long-uuid-goes-here}"
  }
}
于 2021-05-17T22:51:17.767 回答