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


Управление подачей полетных заявок на пакет

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

Важный

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

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

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

Метод УРИ Описание
ПОЛУЧИТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} Получение существующей отправки тестового пакета
ПОЛУЧИТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/status Получение состояния существующей отправки тестового пакета
ОПУБЛИКОВАТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions Создание новой отправки пакетного вылета
ПОСТАВИТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} Обновить существующую отправку версии пакета
ОПУБЛИКОВАТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/commit Зафиксировать новую или обновленную отправку тестового пакета
УДАЛИТЬ 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
    

    Текст ответа содержит ресурс отправки рейса, который включает идентификатор новой отправки, подписанный URL-адрес совместного доступа (SAS) для загрузки любых пакетов отправки в Azure Blob Storage, а также данные для новой отправки (включая все списки и информацию о ценах).

    Заметка

    URI SAS предоставляет доступ к защищенному ресурсу в службе хранилища Azure, не требуя ключей учетной записи. Дополнительные сведения о подписях общего доступа URIs и их использовании с хранилищем BLOB в Azure см. в Подписи общего доступа, часть 1: Общие сведения о модели SAS и Подписи общего доступа, часть 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 на PreProcessing, если запрос выполнен успешно, или на 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. Передайте обновленные данные отправки пакетного полета методу для обновления отправки пакетного полета.

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

Метод УРИ Описание
ПОЛУЧИТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/packagerollout Получение сведений о поэтапном внедрении для отправки пакетного полета
ОПУБЛИКОВАТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/updatepackagerolloutpercentage Обновите постепенный процент развертывания для отправки тестового пакета
ОПУБЛИКОВАТЬ https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/haltpackagerollout Остановить постепенный выпуск для отправки тестового пакета
ОПУБЛИКОВАТЬ 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."
}

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

Ценность Тип Описание
идентификатор струна Идентификатор отправки.
flightId струна Идентификатор полетного пакета, с которым связано представление.
статус струна Статус отправки. Это может быть одно из следующих значений:
  • Нет
  • Аннулированный
  • Ожидание коммита
  • CommitStarted
  • Не удалось завершить операцию
  • Ожидается публикация
  • Издательский
  • Опубликовано
  • Ошибка публикации
  • Предварительная обработка
  • Ошибка предварительной обработки
  • Сертификация
  • Ошибка сертификации
  • Отпускать
  • Ошибка выпуска
подробности статуса объект Ресурс статуса , предоставляющий дополнительные сведения о статусе отправки, включая информацию об ошибках.
flightPackages массив Содержит ресурсы пакета, которые предоставляют сведения о каждом пакете в отправленной заявке.
варианты доставки посылок объект Ресурс параметров доставки пакетов, содержащий постепенный выпуск пакета и обязательные параметры обновления для отправки.
fileUploadUrl струна URI общей подписи доступа (SAS) для загрузки пакетов для отправки. Если вы добавляете новые пакеты для отправки, отправьте ZIP-архив, содержащий пакеты в этот URI. Дополнительные сведения см. в разделе Создание отправки пакетана полет.
целевой режим публикации струна Режим публикации для представления. Это может быть одно из следующих значений:
  • Немедленный
  • Вручную
  • ОпределённаяДата
целеваяДатаПубликации струна Дата публикации для отправки в формате ISO 8601, если targetPublishMode установлен на SpecificDate.
заметкиДляСертификации струна Предоставляет дополнительные сведения для тестировщиков сертификации, такие как учетные данные тестовой учетной записи и шаги для доступа к функциям и их проверки. Дополнительные сведения см. в заметках о сертификации.

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

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

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

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

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

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

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

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

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

Ресурс пакета полета

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

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

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

Заметка

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

Ценность Тип Описание
имя файла струна Имя пакета.
fileStatus струна Состояние пакета. Это может быть одно из следующих значений:
  • Никакой
  • Ожидание загрузки
  • Загружено
  • ОжиданиеDelete
идентификатор струна Идентификатор, который однозначно идентифицирует пакет. Это значение используется Центром партнеров.
Версия струна Версия пакета приложения. Дополнительные сведения см. в разделе Нумерация версий пакета.
архитектура струна Архитектура пакета приложения (например, ARM).
Языки массив Массив языковых кодов для языков, поддерживаемых приложением. Дополнительные сведения см. в разделе Поддерживаемые языки.
Возможности массив Массив возможностей, необходимых пакету. Дополнительные сведения о возможностях см. в декларациях возможностей приложений.
Минимальная версия DirectX струна Минимальная версия 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 объект ресурс развертывания пакета, содержащий параметры постепенного развертывания пакета для отправки.
обязательное обновление булев Указывает, следует ли рассматривать пакеты в этой отправке как обязательные для самостоятельной установки обновлений приложений. Дополнительные сведения о обязательных пакетах для самостоятельной установки обновлений приложений см. в разделе Скачивание и установка обновлений пакетов дляприложения.
обязательноеОбновлениеДатаВступленияВСилу дата Дата и время, когда пакеты в этой отправке становятся обязательными в формате ISO 8601 и часовом поясе UTC.

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

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

Ценность Тип Описание
isPackageRollout булев Указывает, включено ли для отправки постепенное развертывание пакета.
процент развертывания пакета плавать Процент пользователей, которые получат пакеты в процессе постепенного развертывания.
packageRolloutStatus струна Одна из следующих строк, указывающих состояние постепенного развертывания пакета:
  • РаспространениеПакетаНеНачато
  • РазвертываниеПакетаВПроцессе
  • Распространение пакета завершено
  • Откат выпуска пакета остановлен
fallbackSubmissionId струна Идентификатор представления, который будет получен клиентами, которые не получают пакеты для постепенного развертывания.

Заметка

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

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

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

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

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

Код Описание
Никакой Код не указан.
Недействительный архив ZIP-архив, содержащий пакет, является недопустимым или имеет нераспознанный формат архива.
MissingFiles ZIP-архив не содержит все файлы, которые были указаны в данных отправки, или они находятся в неправильном расположении в архиве.
Ошибка проверки пакета Не удалось валидировать один или несколько пакетов в вашей отправке.
НедопустимоеЗначениеПараметра Один из параметров в тексте запроса недопустим.
Недопустимая операция Предпринята недопустимая операция.
Недопустимое состояние Предпринятая операция недопустима для текущего состояния пакетного полета.
РесурсНеНайден Не удалось найти указанный полет пакета.
Ошибка службы Внутренняя ошибка службы предотвратила успешное выполнение запроса. Повторите запрос.
Предупреждение об отказе от листинга Разработчик удалил список из предыдущей отправки или не включал сведения о списке, поддерживаемые пакетом.
Предупреждение о подписке на листинг Разработчик добавил объявление.
UpdateOnlyWarning Разработчик пытается вставить то, что поддерживает только обновления.
Другой Отправка находится в нераспознанном или некатегоризованном состоянии.
Предупреждение о проверке пакета Процесс проверки пакета привел к предупреждению.