Поделиться через


Управление отправкой тестового пакета

API отправки в Microsoft Store предоставляет методы, которые можно использовать для управления отправкой тестового пакета для приложений, включая постепенные развертывания пакетов. Общие сведения об API отправки Microsoft Store, включая предварительные требования для использования API, см. в статье "Создание отправки и управление ими с помощью служб Microsoft Store".

Внимание

Если вы используете API отправки Microsoft Store для создания отправки для тестового пакета, обязательно внесите дальнейшие изменения в отправку только с помощью API, а не Центра партнеров. Если панель мониторинга используется для изменения отправки, созданной с помощью API, вы больше не сможете изменить или зафиксировать отправку с помощью API. В некоторых случаях отправка может оставаться в состоянии ошибки, в которой она не может продолжаться в процессе отправки. В этом случае необходимо удалить отправку и создать новую отправку.

Методы управления отправкой тестового пакета

Используйте следующие методы, чтобы получить, создать, обновить, зафиксировать или удалить отправку тестового пакета. Прежде чем использовать эти методы, тестовый пакет уже должен существовать в Центре партнеров. Вы можете создать тестовый пакет в Центре партнеров или с помощью методов API отправки Microsoft Store, описанных в разделе "Управление рейсами пакетов".

Method URI Description
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} Получение существующей отправки тестового пакета
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/status Получение состояния существующей отправки тестового пакета
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions Создание отправки тестового пакета
PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} Обновление существующей отправки тестового пакета
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/commit Фиксация новой или обновленной отправки тестового пакета
DELETE https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} Удаление отправки тестового пакета

Создание отправки тестового пакета

Чтобы создать отправку для тестового пакета, выполните этот процесс.

  1. Если вы еще не сделали этого, выполните предварительные требования, описанные в статье "Создание отправки и управление ими с помощью служб Microsoft Store", включая связывание приложения Azure AD с учетной записью Центра партнеров и получение идентификатора клиента и ключа. Это нужно сделать только один раз; После того как у вас есть идентификатор клиента и ключ, их можно повторно использовать в любое время, когда необходимо создать новый маркер доступа Azure AD.

  2. Получите маркер доступа Azure AD. Этот маркер доступа необходимо передать методам в API отправки Microsoft Store. После получения маркера доступа у вас будет 60 минут, чтобы использовать его до истечения срока действия. После истечения срока действия маркера можно получить новый.

  3. Создайте отправку тестового пакета, выполнив следующий метод в API отправки Microsoft Store. Этот метод создает новую выполняющуюся отправку, которая является копией последней опубликованной отправки.

    POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions
    

    Текст ответа содержит ресурс отправки тестов, содержащий идентификатор новой отправки, универсальный код ресурса (URI) подписанного URL-адреса (SAS) для отправки пакетов для отправки в Хранилище BLOB-объектов Azure, а также данные для новой отправки (включая все перечисления и сведения о ценах).

    Примечание.

    URI SAS предоставляет доступ к защищенному ресурсу в службе хранилища Azure, не требуя ключей учетной записи. Общие сведения о URI SAS и их использовании с Хранилище BLOB-объектов Azure см. в разделе "Подписанные URL-адреса", часть 1. Общие сведения о модели SAS и подписанных URL-адресах, часть 2. Создание и использование SAS с хранилищем BLOB-объектов.

  4. Если вы добавляете новые пакеты для отправки, подготовьте пакеты и добавьте их в ZIP-архив.

  5. Измените данные отправки тестового пакета с любыми необходимыми изменениями для новой отправки и выполните следующий метод, чтобы обновить отправку тестового пакета.

    PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}
    

    Примечание.

    Если вы добавляете новые пакеты для отправки, обязательно обновите данные отправки, чтобы ссылаться на имя и относительный путь к этим файлам в ZIP-архиве.

  6. Если вы добавляете новые пакеты для отправки, отправьте ZIP-архив в Хранилище BLOB-объектов Azure с помощью URI SAS, предоставленного в тексте ответа метода POST, вызываемого ранее. Существуют различные библиотеки Azure, которые можно использовать для этого на различных платформах, в том числе:

    В следующем примере кода C# показано, как отправить ZIP-архив в Хранилище BLOB-объектов Azure с помощью класса CloudBlockBlob в клиентской библиотеке служба хранилища Azure для .NET. В этом примере предполагается, что ZIP-архив уже записан в объект потока.

    string sasUrl = "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl";
    Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob blockBob =
        new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob(new System.Uri(sasUrl));
    await blockBob.UploadFromStreamAsync(stream);
    
  7. Зафиксируйте отправку тестового пакета, выполнив следующий метод. При этом центр партнеров будет оповещен о том, что вы выполнили отправку и что обновления теперь должны применяться к вашей учетной записи.

    POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/commit
    
  8. Проверьте состояние фиксации, выполнив следующий метод, чтобы получить состояние отправки тестового пакета.

    GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/status
    

    Чтобы подтвердить состояние отправки, просмотрите значение состояния в тексте ответа. Это значение должно измениться с CommitStarted на предварительную обработку, если запрос выполнен успешно или на CommitFailed, если в запросе возникают ошибки. Если возникают ошибки, поле statusDetails содержит дополнительные сведения об ошибке.

  9. После успешного завершения фиксации отправка отправляется в Магазин для приема. Вы можете продолжать отслеживать ход отправки с помощью предыдущего метода или посетить Центр партнеров.

Примеры кода

В следующих статьях приведены подробные примеры кода, демонстрирующие создание отправки тестового пакета на нескольких разных языках программирования:

Модуль StoreBroker PowerShell

В качестве альтернативы вызову API отправки Microsoft Store напрямую мы также предоставляем модуль PowerShell с открытым исходным кодом, который реализует интерфейс командной строки на вершине API. Этот модуль называется StoreBroker. Этот модуль можно использовать для управления отправкой приложений, полетов и надстроек из командной строки, а не вызова API отправки Microsoft Store напрямую, или вы можете просто просмотреть источник, чтобы просмотреть дополнительные примеры вызова этого API. Модуль StoreBroker активно используется в Корпорации Майкрософт в качестве основного способа отправки многих сторонних приложений в Магазин.

Дополнительные сведения см . на странице StoreBroker на сайте GitHub.

Управление постепенным развертыванием пакета для отправки тестового пакета

Вы можете постепенно развернуть обновленные пакеты в отправке тестового пакета в процентах от клиентов вашего приложения в Windows 10 и Windows 11. Это позволяет отслеживать отзывы и аналитические данные для конкретных пакетов, чтобы убедиться, что вы уверены в обновлении, прежде чем развертывать его более широко. Вы можете изменить процент развертывания (или остановить обновление) для опубликованной отправки, не создавая новую отправку. Дополнительные сведения, включая инструкции по включению постепенного развертывания пакетов и управлению ими в Центре партнеров, см . в этой статье.

Чтобы программно включить постепенный выпуск пакета для отправки тестового пакета, выполните этот процесс с помощью методов в API отправки Microsoft Store:

  1. Создайте отправку тестового пакета или получите отправку тестового пакета.
  2. В данных ответа найдите ресурс packageRollout, задайте для поля isPackageRollout значение true и задайте для поля packageRolloutPercentage процент клиентов вашего приложения, которые должны получать обновленные пакеты.
  3. Передайте обновленные данные отправки тестового пакета в метод отправки тестового пакета.

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

Method URI Description
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/packagerollout Получение сведений о постепенном выпуске для отправки тестового пакета
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/updatepackagerolloutpercentage Обновление процента постепенного развертывания для отправки тестового пакета
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/haltpackagerollout Остановка постепенного развертывания для отправки тестового пакета
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/finalizepackagerollout Завершение постепенного развертывания для отправки тестового пакета

Ресурсы данных

Методы API отправки Microsoft Store для управления отправкой тестового пакета используют следующие ресурсы данных JSON.

Ресурс отправки тестов

Этот ресурс описывает отправку тестового пакета.

{
  "id": "1152921504621243649",
  "flightId": "cd2e368a-0da5-4026-9f34-0e7934bc6f23",
  "status": "PendingCommit",
  "statusDetails": {
    "errors": [],
    "warnings": [],
    "certificationReports": []
  },
  "flightPackages": [
    {
      "fileName": "newPackage.appx",
      "fileStatus": "PendingUpload",
      "id": "",
      "version": "1.0.0.0",
      "languages": ["en-us"],
      "capabilities": [],
      "minimumDirectXVersion": "None",
      "minimumSystemRam": "None"
    }
  ],
  "packageDeliveryOptions": {
    "packageRollout": {
        "isPackageRollout": false,
        "packageRolloutPercentage": 0.0,
        "packageRolloutStatus": "PackageRolloutNotStarted",
        "fallbackSubmissionId": "0"
    },
    "isMandatoryUpdate": false,
    "mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
  },
  "fileUploadUrl": "https://productingestionbin1.blob.core.windows.net/ingestion/8b389577-5d5e-4cbe-a744-1ff2e97a9eb8?sv=2014-02-14&sr=b&sig=wgMCQPjPDkuuxNLkeG35rfHaMToebCxBNMPw7WABdXU%3D&se=2016-06-17T21:29:44Z&sp=rwl",
  "targetPublishMode": "Immediate",
  "targetPublishDate": "",
  "notesForCertification": "No special steps are required for certification of this app."
}

Этот ресурс имеет следующие значения.

Значение Тип Описание
id строка Идентификатор отправки.
flightId строка Идентификатор тестового пакета, с которым связана отправка.
статус строка Состояние отправки. Это может быть одно из следующих значений:
  • нет
  • Отмененные
  • ОжиданиеCommit
  • CommitStarted
  • CommitFailed
  • Ожидание публикации
  • Публикация
  • Опубликованные
  • PublishFailed
  • Предварительная обработка
  • PreProcessingFailed
  • Сертификация
  • CertificationFailed
  • Выпуск
  • ReleaseFailed
statusDetails объект Ресурс сведений о состоянии, содержащий дополнительные сведения о состоянии отправки, включая сведения об ошибках.
flightPackages array Содержит ресурсы пакета тестового пакета, предоставляющие сведения о каждом пакете в отправке.
packageDeliveryOptions объект Ресурс параметров доставки пакетов, содержащий постепенное развертывание пакета и обязательные параметры обновления для отправки.
fileUploadUrl строка URI подписанного URL-адреса (SAS) для отправки пакетов для отправки. Если вы добавляете новые пакеты для отправки, отправьте ZIP-архив, содержащий пакеты в этот URI. Дополнительные сведения см. в разделе "Создание отправки тестового пакета".
targetPublishMode строка Режим публикации для отправки. Это может быть одно из следующих значений:
  • Интерпретация
  • Руководство
  • SpecificDate
targetPublishDate строка Дата публикации для отправки в формате ISO 8601, если targetPublishMode имеет значение SpecificDate.
notesForCertification строка Предоставляет дополнительные сведения для тестировщиков сертификации, таких как учетные данные тестовой учетной записи и шаги для доступа к функциям и проверке. Дополнительные сведения см. в заметках о сертификации.

Ресурс сведений о состоянии

Этот ресурс содержит дополнительные сведения о состоянии отправки. Этот ресурс имеет следующие значения.

Значение Тип Описание
ошибки объект Массив ресурсов сведений о состоянии, содержащих сведения об ошибке для отправки.
warnings объект Массив ресурсов сведений о состоянии, содержащих сведения о предупреждении для отправки.
certificationReports объект Массив ресурсов отчета о сертификации, предоставляющих доступ к данным отчета о сертификации для отправки. Эти отчеты можно просмотреть для получения дополнительных сведений, если сертификация завершается ошибкой.

Ресурс сведений о состоянии

Этот ресурс содержит дополнительные сведения о любых связанных ошибках или предупреждениях для отправки. Этот ресурс имеет следующие значения.

Значение Тип Описание
кодом строка Код состояния отправки, описывающий тип ошибки или предупреждения.
details строка Сообщение с дополнительными сведениями о проблеме.

Ресурс отчета о сертификации

Этот ресурс предоставляет доступ к данным отчета о сертификации для отправки. Этот ресурс имеет следующие значения.

Значение Тип Описание
Дата строка Дата и время создания отчета в формате ISO 8601.
reportUrl строка URL-адрес, по которому можно получить доступ к отчету.

Ресурс пакета тестового пакета

Этот ресурс содержит сведения о пакете в отправке.

{
  "flightPackages": [
    {
      "fileName": "newPackage.appx",
      "fileStatus": "PendingUpload",
      "id": "",
      "version": "1.0.0.0",
      "languages": ["en-us"],
      "capabilities": [],
      "minimumDirectXVersion": "None",
      "minimumSystemRam": "None"
    }
  ],
}

Этот ресурс имеет следующие значения.

Примечание.

При вызове метода отправки тестового пакета в тексте запроса требуются только значения fileName, fileStatus, minimumDirectXVersion и minimumSystemRam этого объекта. Остальные значения заполняются Центром партнеров.

Значение Тип Описание
fileName строка Имя пакета.
fileStatus строка Состояние пакета. Это может быть одно из следующих значений:
  • нет
  • ОжиданиеUpload
  • Отправка
  • ОжиданиеDelete
id строка Идентификатор, который однозначно идентифицирует пакет. Это значение используется Центром партнеров.
версия строка Версия пакета приложения. Дополнительные сведения см. в разделе "Нумерирование версий пакета".
архитектура строка Архитектура пакета приложения (например, ARM).
languages array Массив языковых кодов для языков, поддерживаемых приложением. Дополнительные сведения см. в разделе "Поддерживаемые языки".
capabilities array Массив возможностей, необходимых пакету. Дополнительные сведения о возможностях см . в объявлениях возможностей приложений.
minimumDirectXVersion строка Минимальная версия DirectX, поддерживаемая пакетом приложения. Это можно задать только для приложений, предназначенных для Windows 8.x; он игнорируется для приложений, предназначенных для других версий. Это может быть одно из следующих значений:
  • нет
  • DirectX93
  • DirectX100
minimumSystemRam строка Минимальная ОЗУ, требуемая пакетом приложения. Это можно задать только для приложений, предназначенных для Windows 8.x; он игнорируется для приложений, предназначенных для других версий. Это может быть одно из следующих значений:
  • нет
  • Память2 ГБ

Ресурс параметров доставки пакетов

Этот ресурс содержит постепенное развертывание пакета и обязательные параметры обновления для отправки.

{
  "packageDeliveryOptions": {
    "packageRollout": {
        "isPackageRollout": false,
        "packageRolloutPercentage": 0.0,
        "packageRolloutStatus": "PackageRolloutNotStarted",
        "fallbackSubmissionId": "0"
    },
    "isMandatoryUpdate": false,
    "mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
  },
}

Этот ресурс имеет следующие значения.

Значение Тип Описание
packageRollout объект Ресурс развертывания пакета, содержащий параметры постепенного развертывания пакетов для отправки.
isMandatoryUpdate boolean Указывает, следует ли рассматривать пакеты в этой отправке как обязательные для самостоятельной установки обновлений приложений. Дополнительные сведения о обязательных пакетах для самостоятельной установки обновлений приложений см. в разделе "Скачивание и установка обновлений пакетов" для приложения.
обязательныйUpdateEffectiveDate Дата Дата и время, когда пакеты в этой отправке становятся обязательными в формате ISO 8601 и часовом поясе UTC.

Ресурс развертывания пакета

Этот ресурс содержит параметры постепенного развертывания пакета для отправки. Этот ресурс имеет следующие значения.

Значение Тип Описание
isPackageRollout boolean Указывает, включена ли постепенная развертывание пакета для отправки.
packageRolloutPercentage с плавающей запятой Процент пользователей, которые получат пакеты в постепенном развертывании.
packageRolloutStatus строка Одна из следующих строк, указывающих состояние постепенного развертывания пакета:
  • PackageRolloutNotStarted
  • PackageRolloutInProgress
  • PackageRolloutComplete
  • PackageRolloutStopped
fallbackSubmissionId строка Идентификатор отправки, которая будет получена клиентами, которые не получают пакеты постепенного развертывания.

Примечание.

Значения packageRolloutStatus и резервные значенияSubmissionId назначаются Центром партнеров и не предназначены для установки разработчиком. Если включить эти значения в текст запроса, эти значения будут игнорироваться.

Перечисления

Эти методы используют следующие перечисления.

Код состояния отправки

Следующие коды представляют состояние отправки.

Код Описание
Нет Код не указан.
InvalidArchive ZIP-архив, содержащий пакет, является недопустимым или имеет нераспознанный формат архива.
MissingFiles ZIP-архив не содержит все файлы, которые были указаны в данных отправки, или они находятся в неправильном расположении в архиве.
PackageValidationFailed Не удалось проверить один или несколько пакетов в отправке.
InvalidParameterValue Один из параметров в тексте запроса недопустим.
InvalidOperation Предпринята недопустимая операция.
InvalidState Предпринятая операция недопустима для текущего состояния тестового пакета.
ResourceNotFound Не удалось найти указанный тест пакета.
ServiceError Внутренняя ошибка службы предотвратила успешное выполнение запроса. Повторите запрос.
ЛистингOptOutWarning Разработчик удалил список из предыдущей отправки или не включал сведения о списке, поддерживаемые пакетом.
ЛистингOptInWarning Разработчик добавил описание.
UpdateOnlyWarning Разработчик пытается вставить то, что поддерживает только обновления.
Другие Отправка находится в нераспознанном или некатегоризованном состоянии.
PackageValidationWarning Процесс проверки пакета привел к предупреждению.