管理应用提交

Microsoft应用商店提交 API 提供了可用于管理应用提交的方法,包括逐步推出程序包。 有关 Microsoft Store 提交 API 的介绍(包括使用 API 的先决条件),请参阅使用 Microsoft Store 服务创建和管理提交

重要

如果使用 Microsoft Store 提交 API 创建应用提交,请务必只使用此 API 而非合作伙伴中心对提交进行进一步更改。 如果使用合作伙伴中心来更改最初使用此 API 创建的提交,则无法再使用此 API 更改或完成该提交。 在某些情况下,在提交过程中无法继续进行时,提交可能会处于错误状态。 如果发生这种情况,你必须删除提交并创建新的提交。

重要

不能使用此 API 通过适用于企业的 Microsoft Store和适用于教育的 Microsoft Store发布批量购买的提交,也不能将 LOB 应用的提交直接发布到企业。 对于这两种方案,必须使用合作伙伴中心发布提交。

管理应用提交的方法

使用以下方法获取、创建、更新、提交或删除应用提交。 在使用这些方法之前,应用必须已存在于你的合作伙伴中心帐户中,并且你必须先在合作伙伴中心创建此应用的提交。 有关详细信息,请参阅先决条件

方法 URI 说明
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} 获取现有应用提交
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/status 获取现有应用提交的状态
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions 创建新的应用提交
PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} 更新现有应用提交
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/commit 提交新的或更新的应用提交
DELETE https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} 删除应用提交

创建应用提交

若要为应用创建提交,请遵循此过程。

  1. 如果尚未开始操作,请先完成 Microsoft Store 提交 API 的所有先决条件

    注意

    确保应用至少有一个已完成的提交,并且 年龄分级 信息已完成。

  2. 获取 Azure AD 访问令牌。 在 Microsoft Store 提交 API 中,必须将此访问令牌传递给相关方法。 获取访问令牌后,在它到期前,你有 60 分钟的使用时间。 该令牌到期后,可以获取新的令牌。

  3. 通过在 Microsoft 应用商店提交 API 中执行以下方法创建应用提交 。 此方法创建新的正在进行的提交,这是你上次发布的提交的副本。

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

    响应正文包含应用提交资源(包括新提交的 ID)、共享访问签名 (SAS) URI(用于将提交的任何相关文件上传到 Azure Blob 存储,如应用包、一览图像和预告片文件)和新提交的所有数据(如一览和定价信息)。

    注意

    SAS URI 提供对 Azure 存储中的安全资源的访问权限(无需帐户密钥)。 有关 SAS URI 以及借助 Azure Blob 使用这些 URI 的背景信息,请参阅共享访问签名,第 1 部分:了解 SAS 模型共享访问签名,第 2 部分:使用 Blob 存储创建和使用 SAS

  4. 如果要为提交添加新包、列出图像或预告片文件, 请准备应用包准备应用屏幕截图、图像和预告片。 将所有这些文件添加到 ZIP 存档。

  5. 使用新提交的任何所需更改修改应用提交数据,并执行以下方法来更新应用提交

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

    注意

    如果要为提交添加新文件,请确保更新提交数据以引用 ZIP 存档中这些文件的名称和相对路径。

  6. 如果要为提交添加新的包、一览图像或预告片文件,请使用 SAS URI 将 ZIP 存档上传到 Azure Blob 存储,该 URI 已在之前调用的 POST 方法的响应正文中提供。 你可以使用不同的 Azure 库在多个平台上进行此操作,包括:

    以下 C# 代码示例演示了如何在用于 .NET 的 Azure 存储客户端库中使用 CloudBlockBlob 类将 ZIP 存档上传到 Azure Blob 存储。 此示例假定 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}/submissions/{submissionId}/commit
    
  8. 通过执行以下方法来检查提交状态,以获取 应用提交的状态。

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

    若要确认提交状态,请查看响应正文中的 status 值。 如果请求成功,此值应该从 CommitStarted 更改为 PreProcessing;如果请求中存在错误,此值应该更改为 CommitFailed。 如果存在错误,statusDetails 字段将包含有关错误的更多详细信息。

  9. 在提交成功完成之后,提交会发送至应用商店以供引入。 可以通过使用前面的方法,或者通过访问合作伙伴中心,继续监视提交进度。

管理逐步推出包的方法

你可以逐步将应用提交中的更新包推广到 Windows 10 和 Windows 11 上应用的客户的百分比。 这样,你可以监视特定包的反馈和分析数据,以确保在更广泛地推出更新之前对更新充满信心。 可以更改已发布提交的推出百分比(或停止更新),而无需创建新的提交。 有关详细信息,包括有关如何在合作伙伴中心中启用和管理逐步软件包推出的说明,请参阅本文章

若要以编程方式为应用提交启用逐步软件包推出,请使用 Microsoft 应用商店提交 API 中的方法遵循此过程:

  1. 创建应用提交获取现有应用提交
  2. 在响应数据中,找到 packageRollout 资源,将 isPackageRollout 字段设置为 true,并将 packageRolloutPercentage 字段设置为应获取更新包的应用客户的百分比。
  3. 将更新的应用提交数据传递给 更新应用提交 方法。

为应用提交启用逐步软件包推出后,可以使用以下方法以编程方式获取、更新、停止或完成逐步推出。

方法 URI 说明
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/packagerollout 获取应用提交的逐步推出信息
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/updatepackagerolloutpercentage 更新应用提交的逐步推出百分比
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/haltpackagerollout 停止应用提交的逐步推出
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/finalizepackagerollout 完成应用提交的逐步推出

用于管理应用提交的代码示例

以下文章提供了详细的代码示例,演示如何使用多种不同的编程语言创建应用提交:

StoreBroker PowerShell 模块

除了直接调用 Microsoft Store 提交 API 的方式外,我们还提供在该 API 之上实现命令行界面的开源 PowerShell 模块。 此模块称为 StoreBroker。 你可以使用此模块从命令行管理你的应用、外部测试版和加载项提交,而不是通过直接调用 Microsoft Store 提交 API,或者你可以浏览源以查看更多有关如何调用此 API 的示例。 在 Microsoft 内,StoreBroker 模块作为将许多第一方应用程序提交到 Microsoft Store 的主要方式被频繁使用。

有关详细信息,请参阅我们 GitHub 上的 StoreBroker 页面

数据资源

用于管理应用提交的Microsoft应用商店提交 API 方法使用以下 JSON 数据资源。

应用提交资源

此资源描述应用提交。

{
  "id": "1152921504621243540",
  "applicationCategory": "BooksAndReference_EReader",
  "pricing": {
    "trialPeriod": "FifteenDays",
    "marketSpecificPricings": {},
    "sales": [],
    "priceId": "Tier2",
    "isAdvancedPricingModel": true
  },
  "visibility": "Public",
  "targetPublishMode": "Manual",
  "targetPublishDate": "1601-01-01T00:00:00Z",
  "listings": {
    "en-us": {
      "baseListing": {
        "copyrightAndTrademarkInfo": "",
        "keywords": [
          "epub"
        ],
        "licenseTerms": "",
        "privacyPolicy": "",
        "supportContact": "",
        "websiteUrl": "",
        "description": "Description",
        "features": [
          "Free ebook reader"
        ],
        "releaseNotes": "",
        "images": [
          {
            "fileName": "contoso.png",
            "fileStatus": "Uploaded",
            "id": "1152921504672272757",
            "description": "Main page",
            "imageType": "Screenshot"
          }
        ],
        "recommendedHardware": [],
        "title": "Contoso ebook reader"
      },
      "platformOverrides": {
        "Windows81": {
          "description": "Ebook reader for Windows 8.1"
        }
      }
    }
  },
  "hardwarePreferences": [
    "Touch"
  ],
  "automaticBackupEnabled": false,
  "canInstallOnRemovableMedia": true,
  "isGameDvrEnabled": false,
  "gamingOptions": [],
  "hasExternalInAppProducts": false,
  "meetAccessibilityGuidelines": true,
  "notesForCertification": "",
  "status": "PendingCommit",
  "statusDetails": {
    "errors": [],
    "warnings": [],
    "certificationReports": []
  },
  "fileUploadUrl": "https://productingestionbin1.blob.core.windows.net/ingestion/387a9ea8-a412-43a9-8fb3-a38d03eb483d?sv=2014-02-14&sr=b&sig=sdd12JmoaT6BhvC%2BZUrwRweA%2Fkvj%2BEBCY09C2SZZowg%3D&se=2016-06-17T18:32:26Z&sp=rwl",
  "applicationPackages": [
    {
      "fileName": "contoso_app.appx",
      "fileStatus": "Uploaded",
      "id": "1152921504620138797",
      "version": "1.0.0.0",
      "architecture": "ARM",
      "languages": [
        "en-US"
      ],
      "capabilities": [
        "ID_RESOLUTION_HD720P",
        "ID_RESOLUTION_WVGA",
        "ID_RESOLUTION_WXGA"
      ],
      "minimumDirectXVersion": "None",
      "minimumSystemRam": "None",
      "targetDeviceFamilies": [
        "Windows.Mobile min version 10.0.10240.0"
      ]
    }
  ],
  "packageDeliveryOptions": {
    "packageRollout": {
        "isPackageRollout": false,
        "packageRolloutPercentage": 0.0,
        "packageRolloutStatus": "PackageRolloutNotStarted",
        "fallbackSubmissionId": "0"
    },
    "isMandatoryUpdate": false,
    "mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
  },
  "enterpriseLicensing": "Online",
  "allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies": true,
  "allowTargetFutureDeviceFamilies": {
    "Desktop": false,
    "Mobile": true,
    "Holographic": true,
    "Xbox": false,
    "Team": true
  },
  "friendlyName": "Submission 2",
  "trailers": []
}

此资源具有以下值。

Value 类型 描述
id string 提交的 ID。 此 ID 可用于响应数据,请求创建 应用提交获取所有应用获取应用。 对于在合作伙伴中心中创建的提交,此 ID 也可以在合作伙伴中心提交页面的 URL 中找到。
applicationCategory string 一个字符串,指定 应用的类别和/或子类别 。 类别和子类别合并为带有下划线“_”字符的单个字符串,例如 BooksAndReference_EReader
定价 object 包含 应用的定价信息的定价资源
可见性 string 应用的可见性。 这可以是以下值之一:
  • Hidden
  • 公用
  • 专用
  • NotSet
targetPublishMode string 提交的发布模式。 这可以是以下值之一:
  • 即时
  • 手动
  • SpecificDate
targetPublishDate string 提交的发布日期采用 ISO 8601 格式(如果 targetPublishMode 设为“SpecificDate”)。
listings object 键和值对字典,其中每个键都是国家/地区代码,每个值都是包含 应用列表信息的列表资源
hardwarePreferences array 定义应用的硬件首选项字符串数组。 这可以是以下值之一:
  • 触控
  • Keyboard
  • 鼠标
  • Camera
  • NfcHce
  • Nfc
  • BluetoothLE
  • 电话服务
automaticBackupEnabled boolean 指示 Windows 是否可以将应用的数据包含在 OneDrive 的自动备份中。 有关详细信息,请参阅 应用声明
canInstallOnRemovableMedia boolean 指示客户是否可以将应用安装到可移动存储。 有关详细信息,请参阅 应用声明
isGameDvrEnabled boolean 指示是否为应用启用游戏 DVR。
gamingOptions array 一个数组,其中包含一个 游戏选项资源 ,用于定义应用的游戏相关设置。
hasExternalInAppProducts boolean 指示你的应用是否允许用户在Microsoft应用商店商务系统之外进行购买。 有关详细信息,请参阅 应用声明
meetAccessibilityGuidelines boolean 指示应用是否已测试以满足辅助功能准则。 有关详细信息,请参阅 应用声明
notesForCertification string 包含 应用的认证 说明。
状态 字符串 提交的状态。 这可以是以下值之一:
  • 已取消
  • PendingCommit
  • CommitStarted
  • CommitFailed
  • PendingPublication
  • 发布
  • 已发布
  • PublishFailed
  • PreProcessing
  • PreProcessingFailed
  • 认证
  • CertificationFailed
  • 发布
  • ReleaseFailed
statusDetails object 包含有关提交状态的附加详细信息的状态详细信息资源,其中包括任何错误的相关信息。
fileUploadUrl string 用于为提交上传任何程序包的共享访问签名 (SAS) URI。 如果要为提交添加新包、列出图像或预告片文件,请将包含包和图像的 ZIP 存档上传到此 URI。 有关详细信息,请参阅 “创建应用提交”。
applicationPackages array 应用程序包资源的数组,提供有关提交中的每个包的详细信息。
packageDeliveryOptions object 传递选项资源 ,其中包含提交的逐步软件包推出和强制更新设置。
enterpriseLicensing string 指示应用的企业许可行为的企业许可值之一。
allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies boolean 指示是否允许 Microsoft使应用可供将来的 Windows 10 和 Windows 11 设备系列使用。
allowTargetFutureDeviceFamilies object 键和值对字典,其中每个键是 Windows 10 和 Windows 11 设备系列 ,每个值都是一个布尔值,指示你的应用是否允许针对指定的设备系列。
friendlyName 字符串 提交的友好名称,如合作伙伴中心所示。 当你创建提交时,系统会为你生成此值。
拖车 array 一个数组,其中包含最多 15 个预告片资源,这些资源 表示应用列表的视频预告片。

定价资源

此资源包含应用的定价信息。 此资源具有以下值。

Value 类型 描述
trialPeriod string 一个字符串,指定应用的试用期。 这可以是以下值之一:
  • NoFreeTrial
  • OneDay
  • TrialNeverExpires
  • 七天
  • 15Days
  • 30Days
marketSpecificPricings object 键值对字典,其中每个键为两个字母的 ISO 3166-1 二字母国家/地区代码,而每个值为价格段。 这些项目表示 特定市场中应用的自定义价格。 此字典中的任何项替代 priceId 值针对特定市场所指定的基价。
销售额 array 已弃用。 包含应用销售信息的销售资源的数组
priceId string 一个价格层,指定应用的基本价格
isAdvancedPricingModel boolean 如果为 true,你的开发人员帐户可以使用从 0.99 美元到 1999.99 美元的扩展价格段。 如果为 false,你的开发人员帐户可以使用从 0.99 美元到 999.99 美元的原始价格段。 有关其他价格段的详细信息,请参阅价格段

注意:此字段为只读字段。

销售资源

此资源包含应用的销售信息。

重要

不再支持销售资源,目前无法使用 Microsoft 应用商店提交 API 获取或修改应用提交的销售数据。 将来,我们将更新 Microsoft 应用商店提交 API,以引入以编程方式访问应用提交的销售信息的新方法。

此资源具有以下值。

Value 类型 说明
name string 销售的名称。
basePriceId string 要用于销售基价的价格段
startDate string 采用 ISO 8601 格式的销售的开始日期。
endDate string 采用 ISO 8601 格式的销售的结束日期。
marketSpecificPricings object 键值对字典,其中每个键为两个字母的 ISO 3166-1 二字母国家/地区代码,而每个值为价格段。 这些项目表示 特定市场中应用的自定义价格。 此字典中的任何项替代 basePriceId 值针对特定市场所指定的基价。

应用一览资源

此资源包含应用的列表信息。 此资源具有以下值。

Value 类型 描述
baseListing object 应用的基列表信息,用于定义所有平台的默认列表信息。
platformOverrides object 键和值对的字典,其中每个键都是标识要替代列表信息的平台的字符串,每个值都是一个 基列表 资源(仅包含说明到标题的值),用于指定要替代指定平台的列表信息。 这些键可以具有以下值:
  • 未知
  • Windows80
  • Windows81
  • WindowsPhone71
  • WindowsPhone80
  • WindowsPhone81

基本列表资源

此资源包含应用的基列表信息。 此资源具有以下值。

Value 类型 描述
copyrightAndTrademarkInfo string 可选的 版权和/或商标信息
关键字 array 用于帮助应用显示在搜索结果中的关键字数组
licenseTerms string 应用的可选 许可条款
privacyPolicy string 此值已过时。 若要设置或更改应用的隐私策略 URL,必须在合作伙伴中心的属性页面上执行此操作。 可以从对提交 API 的调用中省略此值。 如果设置此值,将忽略该值。
supportContact string 此值已过时。 若要设置或更改应用的支持部门联系 URL 或电子邮件地址,必须在合作伙伴中心的属性页面上执行此操作。 可以从对提交 API 的调用中省略此值。 如果设置此值,将忽略该值。
websiteUrl string 此值已过时。 若要设置或更改应用的网页 URL,必须在合作伙伴中心的属性页面上执行此操作。 可以从对提交 API 的调用中省略此值。 如果设置此值,将忽略该值。
description string 应用列表的说明
功能 array 最多包含 20 个字符串的数组,其中列出了 应用的功能
releaseNotes string 应用的发行说明
images array 应用列表的图像和图标资源的数组
recommendedHardware array 最多包含 11 个字符串的数组,其中列出了 应用的建议硬件配置
minimumHardware string 最多包含 11 个字符串的数组,其中列出了 应用的最低硬件配置
title string 应用列表的标题。
shortDescription string 仅用于游戏。 此说明出现在 Xbox One 上游戏中心的“信息”部分,帮助客户详细了解你的游戏。
shortTitle string 产品名称的简短版本。 如果提供,此简短名称可能会出现在 Xbox One 的不同位置(安装过程中、成就中等),以代替产品的完整标题。
sortTitle string 如果产品可以按不同方式按字母顺序排列,可以在此处输入另一个版本。 这可以帮助客户在搜索时更快地找到产品。
voiceTitle string 产品的替代名称(如果提供)可在使用 Kinect 或耳机时用于 Xbox One 的音频体验。
devStudio string 如果要在列表中包括 “开发者” 字段,请指定此值。 (The “发布者” 字段将列出与帐户关联的发布者显示名称,无论你是否提供 devStudio 值。

图像资源

此资源包含应用列表的图像和图标数据。 有关应用列表的图像和图标的详细信息,请参阅 应用屏幕截图和图像。 此资源具有以下值。

Value 类型 说明
fileName string 为提交上传的 ZIP 存档中的图像文件的名称。
fileStatus string 映像文件的状态。 这可以是以下值之一:
  • PendingUpload
  • 已上传
  • PendingDelete
id string 映像的 ID。 此值由合作伙伴中心提供。
description string 图像的说明。
imageType string 指示图像的类型。 目前支持以下字符串。

屏幕截图图像

  • 屏幕截图(对桌面屏幕截图使用此值)
  • MobileScreenshot
  • XboxScreenshot
  • SurfaceHubScreenshot
  • HoloLensScreenshot

Microsoft Store 徽标

  • StoreLogo9x16
  • StoreLogoSquare
  • 图标 (将此值用于 1:1 300 x 300 像素徽标)

促销图像

  • PromotionalArt16x9
  • PromotionalArtwork2400X1200

Xbox 映像

  • XboxBrandedKeyArt
  • XboxTitledHeroArt
  • XboxFeaturedPromotionalArt

可选促销图像

  • SquareIcon358X358
  • BackgroundImage1000X800
  • PromotionalArtwork414X180

游戏选项资源

此资源包含与游戏相关的应用设置。 此资源中的值对应于合作伙伴中心的提交的游戏设置

{
  "gamingOptions": [
    {
      "genres": [
        "Games_ActionAndAdventure",
        "Games_Casino"
      ],
      "isLocalMultiplayer": true,
      "isLocalCooperative": true,
      "isOnlineMultiplayer": false,
      "isOnlineCooperative": false,
      "localMultiplayerMinPlayers": 2,
      "localMultiplayerMaxPlayers": 12,
      "localCooperativeMinPlayers": 2,
      "localCooperativeMaxPlayers": 12,
      "isBroadcastingPrivilegeGranted": true,
      "isCrossPlayEnabled": false,
      "kinectDataForExternal": "Enabled"
    }
  ],
}

此资源具有以下值。

Value 类型 描述
流派 array 描述游戏流派的一个或多个字符串的数组:
  • Games_ActionAndAdventure
  • Games_CardAndBoard
  • Games_Casino
  • Games_Educational
  • Games_FamilyAndKids
  • Games_Fighting
  • Games_Music
  • Games_Platformer
  • Games_PuzzleAndTrivia
  • Games_RacingAndFlying
  • Games_RolePlaying
  • Games_Shooter
  • Games_Simulation
  • Games_Sports
  • Games_Strategy
  • Games_Word
isLocalMultiplayer boolean 指示游戏是否支持本地多人游戏。
isLocalCooperative boolean 指示游戏是否支持本地合作。
isOnlineMultiplayer boolean 指示游戏是否支持在线多人游戏。
isOnlineCooperative boolean 指示游戏是否支持在线合作。
localMultiplayerMinPlayers int 指定游戏支持本地多人游戏的最小玩家数。
localMultiplayerMaxPlayers int 指定游戏支持本地多人游戏的最大玩家数。
localCooperativeMinPlayers int 指定游戏支持本地合作的最小玩家数。
localCooperativeMaxPlayers int 指定游戏支持本地合作的最大玩家数。
isBroadcastingPrivilegeGranted boolean 指示游戏是否支持广播。
isCrossPlayEnabled boolean 指示游戏是否支持 Windows 10 和 Windows 11 电脑和 Xbox 上的玩家之间的多人游戏会话。
kinectDataForExternal string 以下字符串值之一,指示游戏是否可以收集 Kinect 数据并将其发送到外部服务:
  • NotSet
  • 未知
  • 已启用
  • 已禁用

注意

2017 年 5 月,Microsoft应用商店提交 API 首次发布到开发人员后,添加了 gamingOptions 资源。 如果在引入此资源之前通过提交 API 为应用创建了提交,并且此提交仍在进行中,则在成功提交或删除该应用之前,此资源将为 null。 如果 gamingOptions 资源不适用于应用的提交,则获取应用方法返回的应用程序资源的 hasAdvancedListingPermission 字段为 false。

状态详细信息资源

此资源包含有关提交状态的附加详细信息。 此资源具有以下值。

Value 类型 说明
错误 object 包含提交的错误详细信息的状态详细信息资源数组。
warnings object 包含提交的警告详细信息的状态详细信息资源数组。
certificationReports object 提供对提交的认证报告数据的访问权限的认证报告资源数组。 如果认证失败,可检查这些报告,获取详细信息。

状态详细信息资源

此资源包含关于提交的任何相关错误或警告的附加详细信息。 此资源具有以下值。

Value 类型 说明
code string 描述错误或警告类型的提交状态代码
详细信息 string 包含有关问题的更多详细信息的消息。

应用程序包资源

此资源包含有关提交应用包的详细信息。

{
  "applicationPackages": [
    {
      "fileName": "contoso_app.appx",
      "fileStatus": "Uploaded",
      "id": "1152921504620138797",
      "version": "1.0.0.0",
      "architecture": "ARM",
      "languages": [
        "en-US"
      ],
      "capabilities": [
        "ID_RESOLUTION_HD720P",
        "ID_RESOLUTION_WVGA",
        "ID_RESOLUTION_WXGA"
      ],
      "minimumDirectXVersion": "None",
      "minimumSystemRam": "None",
      "targetDeviceFamilies": [
        "Windows.Mobile min version 10.0.10240.0"
      ]
    }
  ],
}

此资源具有以下值。

注意

调用 更新应用提交 方法时,请求正文中只需要 fileNamefileStatusminimumDirectXVersionminimumSystemRam 值。 其他值由合作伙伴中心进行填充。

类型 说明
fileName string 包的名称。
fileStatus string 包的状态。 这可以是以下值之一:
  • PendingUpload
  • 已上传
  • PendingDelete
id string 唯一标识包的 ID。 此值由合作伙伴中心提供。
版本 string 应用包的版本。 有关详细信息,请参阅 包版本号
architecture string 包的体系结构(例如 ARM)。
语言 array 应用支持的语言的语言代码数组。 有关详细信息,请参阅支持的语言
功能 array 包所需的功能数组。 有关功能的详细信息,请参阅 应用功能声明
minimumDirectXVersion string 应用包支持的最低 DirectX 版本。 这只能针对面向 Windows 8.x 的应用进行设置。 对于面向其他 OS 版本的应用,调用应用提交方法时必须存在此值,但你指定的值将被忽略。 这可以是以下值之一:
  • DirectX93
  • DirectX100
minimumSystemRam string 应用包所需的最小 RAM。 这只能针对面向 Windows 8.x 的应用进行设置。 对于面向其他 OS 版本的应用,调用应用提交方法时必须存在此值,但你指定的值将被忽略。 这可以是以下值之一:
  • Memory2GB
targetDeviceFamilies array 一个字符串数组,表示包所面向的设备系列。 此值仅用于面向 Windows 10 的包;对于面向早期版本的包,此值的值为 None。 Windows 10 和 Windows 11 包目前支持以下设备系列字符串,其中 {0} Windows 10 或 Windows 11 版本字符串(例如 10.0.10240.0、10.0.10586.0 或 10.0.14393.0)
  • Windows.Universal 最低版本 {0}
  • Windows.Desktop 最低版本 {0}
  • Windows.Mobile 最低版本 {0}
  • Windows.Xbox min 版本 {0}
  • Windows.Holographic 最小版本 {0}

id=“certification-report-resource”

认证报告资源

此资源提供对提交的认证报告数据的访问权限。 此资源具有以下值。

Value 类型 说明
date string 报告生成的日期和时间,采用 ISO 8601 格式。
reportUrl string 用于访问报告的 URL。

程序包传递选项资源

此资源包含提交的逐步软件包推出和强制更新设置。

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

此资源具有以下值。

Value 类型 描述
packageRollout object 包含 提交的逐步软件包推出设置的包推出资源
isMandatoryUpdate boolean 指示是否要将此提交中的包视为自安装应用更新必需的。 有关自安装应用更新的必需包的详细信息,请参阅 下载和安装应用的程序包更新。
mandatoryUpdateEffectiveDate date 此提交中的包变为强制性的日期和时间,采用 ISO 8601 格式和 UTC 时区。

包推出资源

此资源包含提交的逐步 软件包推出设置 。 此资源具有以下值。

Value 类型 描述
isPackageRollout boolean 指示是否为提交启用了逐步软件包推出。
packageRolloutPercentage float 将在逐步推出中接收程序包的用户百分比。
packageRolloutStatus string 以下字符串之一,指示逐步推出包的状态:
  • PackageRolloutNotStarted
  • PackageRolloutInProgress
  • PackageRolloutComplete
  • PackageRolloutStopped
fallbackSubmissionId string 不会获取逐步推出包的客户将收到的提交的 ID。

注意

packageRolloutStatus 值和 fallbackSubmissionId 值由合作伙伴中心分配,但不是由开发人员设置。 如果在请求正文中包含这些值,这些值将被忽略。

预告片资源

此资源表示应用列表的视频预告片。 此资源中的值对应于合作伙伴中心的提交的预告片选项。

可以将最多 15 个预告片资源添加到应用提交资源中的预告片数组。 若要上传提交的预告片视频文件和缩略图图像,请将这些文件添加到包含提交的包和列出图像的同一 ZIP 存档,然后将此 ZIP 存档上传到提交的共享访问签名 (SAS) URI。 有关将 ZIP 存档上传到 SAS URI 的详细信息,请参阅 “创建应用提交”。

{
  "trailers": [
    {
      "id": "1158943556954955699",
      "videoFileName": "Trailers\\ContosoGameTrailer.mp4",
      "videoFileId": "1159761554639123258",
      "trailerAssets": {
        "en-us": {
          "title": "Contoso Game",
          "imageList": [
            {
              "fileName": "Images\\ContosoGame-Thumbnail.png",
              "id": "1155546904097346923",
              "description": "This is a still image from the video."
            }
          ]
        }
      }
    }
  ]
}

此资源具有以下值。

Value 类型 描述
id string 预告片的 ID。 此值由合作伙伴中心提供。
videoFileName string ZIP 存档中包含提交的文件的预告片视频文件的名称。
videoFileId string 预告片视频文件的 ID。 此值由合作伙伴中心提供。
trailerAssets object 键和值对字典,其中每个键都是语言代码,每个值都是一个 预告片资产资源 ,其中包含预告片的其他特定于区域设置的资产。 有关支持的语言代码的详细信息,请参阅 支持的语言

注意

Microsoft 应用商店提交 API 首次发布到开发人员后,2017 年 5 月添加了预告片 资源。 如果在引入此资源之前通过提交 API 为应用创建了提交,并且此提交仍在进行中,则在成功提交或删除该应用之前,此资源将为 null。 如果预告片资源不适用于应用的提交,则获取应用方法返回的应用程序资源的 hasAdvancedListingPermission 字段为 false。

预告片资产资源

此资源包含预告片资源定义的预告片的其他特定于区域设置的资产。 此资源具有以下值。

Value 类型 说明
职务 string 预告片的本地化标题。 当用户在全屏模式下播放预告片时,将显示游戏。
imageList array 一个数组,其中包含一个 图像 资源,该资源为预告片提供缩略图。 在此数组中只能包含一个 图像 资源。

图像资源(适用于预告片)

此资源描述预告片的缩略图。 此资源具有以下值。

Value 类型 说明
fileName string 为提交上传的 ZIP 存档中的缩略图图像文件的名称。
id string 缩略图的 ID。 此值由合作伙伴中心提供。
description string 缩略图的说明。 此值仅是元数据,不会向用户显示。

枚举

这些方法使用以下枚举。

价格段

以下值表示应用提交的定价资源资源中的可用价格层。

说明
基本 未设置价格层;使用应用的基价。
NotAvailable 应用在指定区域中不可用。
免费 该应用是免费的。
第 xxx 层 一个字符串,指定应用的价格层,格式为第 xxxx。 目前,支持以下价格段范围:

  • 如果定价资源isAdvancedPricingModel 值为 true,则你的帐户的可用价格段值为 Tier1012 - Tier1424
  • 如果定价资源isAdvancedPricingModel 值为 false,则你的帐户的可用价格段值为 Tier2 - Tier96
若要查看可用于开发人员帐户的完整价格段表(包括与每个价格段关联的特定于市场的价格),请在合作伙伴中心前往你的任意应用提交的“定价和可用性”页面,然后单击“市场与自定义价格”部分的“查看表格”链接(对于某些开发人员帐户,此链接位于“定价”部分)。

企业许可值

以下值表示应用的组织许可行为。 有关这些选项的详细信息,请参阅 组织许可选项

注意

尽管可以通过提交 API 为应用提交配置组织许可选项,但不能使用此 API 通过适用于企业的 Microsoft Store和适用于教育的 Microsoft Store发布批量购买的提交。 若要将提交发布到适用于企业的 Microsoft Store 和适用于教育的 Microsoft Store,必须使用合作伙伴中心。

说明
不要将你的应用提供给具有 Microsoft Store 托管(联机)批量许可的企业。
联机 通过应用商店管理的(联机)批量许可,使应用可供企业使用。
OnlineAndOffline 通过应用商店管理的(联机)批量许可使应用可供企业使用,并通过断开连接的(脱机)许可向企业提供你的应用。

提交状态代码

以下值表示提交的状态代码。

Value 说明
未指定任何代码。
InvalidArchive 包含程序包的 ZIP 存档无效或具有无法识别的存档格式。
MissingFiles ZIP 存档未包含提交数据中列出的所有文件,或者它们位于存档中的错误位置。
PackageValidationFailed 提交中的一个或多个程序包验证失败。
InvalidParameterValue 请求正文中的某一个参数无效。
InvalidOperation 所尝试的操作无效。
InvalidState 所尝试的操作对当前状态的软件包外部测试版无效。
ResourceNotFound 找不到指定的软件包外部测试版。
ServiceError 导致请求失败的内部服务错误。 重新尝试请求。
ListingOptOutWarning 开发人员已从以前的提交中删除了某个列表,或者未包含程序包支持的列表信息。
ListingOptInWarning 开发人员添加了一个列表。
UpdateOnlyWarning 开发人员正在尝试插入仅具有更新支持的某些内容。
其他 提交处于无法识别或未分类的状态。
PackageValidationWarning 程序包验证过程导致出现警告。