Надстройка не указана на сайте Android AMO, но указана для платформы Windows.

Некоторое время назад наш разработчик представил надстройку WebExtension в AMO, которая находится в открытом доступе. Я смог найти его с помощью поиска на странице дополнений Firefox. Я попытался установить надстройку в своем мобильном браузере Firefox. Я искал в магазине дополнений, но его нет в наличии. Похоже, что Firefox для Android переходит на страницу дополнений Android. Я искал ту же страницу надстроек 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": "[email protected]",
            "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 для ПК, так и для Firefox для Android?


person smk    schedule 23.02.2017    source источник
comment
Хотя проблема не в этом: вы указали разрешение tabs. обычно используется с tabs API, который не поддерживается в Firefox для Android.   -  person Makyen♦    schedule 23.02.2017
comment
Спасибо @Makyen, мы полностью упустили из виду поддержку API вкладок в Android. Теперь больше развития.   -  person smk    schedule 24.02.2017


Ответы (2)


Файлы WebExtension manifest.json не имеют метода явного указания, с какими приложениями они совместимы. Это информация, которую необходимо указать при загрузке дополнения в AMO. Путаница, вероятно, заключается в том, что «Firefox для Android» считается другим «Приложением», а не «Платформой». В этом контексте приложения — это программы, в которые может быть загружено ваше дополнение. Например: «Firefox», «Firefox для Android», «Thunderbird» и т. д. Платформы — это, в частности, «Linux», «Mac OS X» и «Windows». Да, Android на самом деле является платформой, но именно так она устроена.

К счастью, вы можете изменить поддерживаемые приложения для текущей версии из панели управления AMO для вашего дополнения.

  • На главной странице консоли разработчика для вашего дополнения выберите «Управление статусом и версиями» (в синем поле слева, чуть выше разделительной линии). Прямой URL должен быть этот
  • В разделе «Версии в списке» ➞ «В настоящее время в AMO» выберите самую последнюю версию. Это должна быть «Версия 0.10.9».
  • На этой странице в разделе «Управление версией xxx» ➞ «Совместимость» выберите «Добавить другое приложение…»
  • Выберите «Firefox для Android» и укажите, с какими версиями вы совместимы.
  • Сохраните изменения.

Это будет выглядеть примерно так:

Добавить совместимое приложение

person Makyen♦    schedule 23.02.2017
comment
Значения по умолчанию возвращены. Мне пришлось явно удалить совместимость расширения управления вкладками с Android. - person Basilevs; 30.05.2018

Firefox для Android имеет дополнительное требование для вашего manifest.json: раздел gecko с id должен быть установлен в разделе browser_specific_settings в соответствии с семинаром по расширениям Mozilla (Когда вам нужен идентификатор надстройки? ... Использование Firefox для Android.) Это также упоминается в их Контрольный список Android< /а>. До Firefox 48 этот дополнительный параметр требовался на рабочем столе, он по-прежнему требуется на Android и создает предупреждение в Chrome, поэтому вы можете создать другую версию без него, если вы также публикуете в Chrome. Несколько бесполезно то, что без этого id AMO по-прежнему позволяет вам заявить, что ваше расширение совместимо с Android, но не перечисляет его и не указывает, что причиной его сбоя в списке является отсутствие в вашем манифесте идентификатора браузера.

Поскольку вы уже опубликовали свое расширение без идентификатора, идентификатор будет предоставлен вам автоматически, и вам лучше не менять его, иначе вы опубликуете новое расширение, отличное от первого. Поэтому вам нужно узнать, какое удостоверение личности вам дали. Вы можете сделать это, установив расширение в настольный Firefox с сайта addons.mozilla.org, перейдите на страницу about:debugging , щелкните Этот Firefox и в разделе Расширения найдите идентификатор расширения вашего расширения. Это то, что вам нужно добавить в кавычки и поместить в нужную часть вашего манифеста, чтобы он работал для Android:

"browser_specific_settings": {
  "gecko": {
    "id": "{long-uuid-goes-here}"
  }
}
person Silas S. Brown    schedule 17.05.2021