Хотя я не проверял это, вы явно отправляете запрос на URL-адрес, предназначенный для WebExtensions без идентификатора, а не URL-адрес для загрузка новой версии вашего дополнения с идентификатором. AMO использует идентификаторы надстроек, чтобы сопоставить надстройку с существующей в данный момент. Единственный случай, когда WebExtension не имеет идентификатора, — это первая загрузка нового расширения в AMO (и вы решили не назначать идентификатор самостоятельно во время разработки).
После того, как вы загрузили надстройку в AMO в первый раз и WebExtension появился в списке, у него есть идентификатор. Таким образом, я бы предположил, что в документации просто не на 100 % ясно, что загрузка без идентификатора предназначена только для загрузки нового надстройки WebExtension. Единственное, что заставляет меня думать, что используемый вами URL-адрес может предназначаться для WebExtensions с идентификаторами, — это сообщения об ошибках, которые, как утверждается, возможны, но этот список ошибок может быть просто копией. -вставка из другого раздела.
Загрузка нового дополнения WebExtensions (без идентификатора):
curl "https://addons.mozilla.org/api/v3/addons/"
-g -XPOST -F "upload=@build/my-addon.xpi" -F "version=1.0"
-H "Authorization: JWT <jwt-token>"
Загрузка новой версии дополнения (с идентификатором):
curl "https://addons.mozilla.org/api/v3/addons/@my-addon/versions/1.0/"
-g -XPUT --form "upload=@build/my-addon.xpi"
-H "Authorization: JWT <jwt-token>"
например, в вашем случае:
curl "https://addons.mozilla.org/api/v3/addons/{3dce78ca-2a07-4017-9111-998d4f826625}/versions/1.0.17/"
-g -XPUT --form "upload=@dist/firefox/psono.firefox.PW.zip"
-H "Authorization: JWT ABCDEFG..."
Я бы посчитал это проблемой в документации по процессу загрузки, где описание фактического использования URL-адреса WebExtensions-no-ID должно быть уточнено.
Проверьте это, чтобы убедиться, что вы можете загружать новую версию (включая applications
в вашем manifest.json), используя обычный URL-адрес для загрузки версии. Если вы подтвердите, что это работает, я отправлю запрос на включение в документацию, чтобы сделать его более понятным.
Примечание. документация на MDN, когда говоря об обновлении надстройки, говорится:
В этом рабочем процессе важно, чтобы вы обновляли надстройку вручную, используя ее страницу в AMO, иначе AMO не поймет, что отправка является обновлением существующей надстройки, и будет рассматривать это обновление как совершенно новое дополнение.
Однако следует отметить, что даже в этом разделе говорится об обновлении надстройки без идентификатора, указанного в ключе applications
. Таким образом, даже эта документация не ясна на 100%.
Альтернативные возможности
Если используемый вами URL-адрес на самом деле предназначен как для новых WebExtensions без идентификатора , так и для новых версий уже существующих WebExtensions с идентификатором:
- Вы уже загрузили версию 1.0.17 вашего дополнения. Если это так, то существует ошибка, которая возвращает ошибку
"Duplicate add-on ID found."
вместо того, чтобы текст ошибки объяснял, что для этого идентификатора существует повторяющаяся версия. Если это так, то я бы подумал, что в документации также необходимо пояснить, что URL-адрес предназначен как для WebExtensions с идентификатором, так и без него: что указание без идентификатора относится только к используемому URL-адресу и параметрам, переданным в API.
- Вы еще не загрузили версию 1.0.17 вашего дополнения. Если это так, то есть ошибка, которая не позволяет загружать новые версии уже существующего идентификатора дополнения. Простое решение этой проблемы состоит в том, чтобы просто объявить, что это предполагаемая операция, и изменить документацию, чтобы было ясно, что вместо нового дополнения следует использовать URL-адрес/PUT с идентификатором, без URL-адреса/POST-идентификатора.
10.06.2017