앱 제출 관리하기
Microsoft Store 제출 API는 점진적 패키지 출시를 비롯하여 앱 제출을 관리하는 데 사용할 수 있는 메서드를 제공합니다. API 사용을 위한 필수 조건을 비롯한 Microsoft Store 제출 API에 대한 자세한 정보는 Microsoft Store 서비스를 사용하여 제출 만들기 및 관리하기를 참조하세요.
Important
Microsoft Store 제출 API를 사용하여 앱에 대한 제출을 생성하는 경우 파트너 센터 대신 API만 사용하여 제출을 추가 변경해야 합니다. 파트너 센터를 사용하여 원래 API를 사용하여 만든 제출을 변경하는 경우 더 이상 API를 사용하여 해당 제출을 변경하거나 커밋할 수 없습니다. 경우에 따라 제출이 제출 프로세스를 더 이상 진행할 수 없는 오류 상태로 남을 수 있습니다. 이러한 문제가 발생하는 경우, 해당 제출을 삭제하고 새 제출을 생성해야 합니다.
중요
비즈니스용 Microsoft Store 및 교육용 Microsoft Store를 통해 대량 구매하기 위한 제출을 게시하거나 LOB 앱에 대한 제출을 기업에 직접 게시하는 데 이 API를 사용할 수 없습니다. 이러한 두 시나리오의 경우 파트너 센터를 사용하여 제출을 게시해야 합니다.
앱 제출을 관리하는 방법
앱 제출을 가져오고, 만들고, 업데이트하고, 커밋 또는 삭제하려면 다음 메서드를 사용합니다. 이러한 메서드를 사용하려면 앱이 파트너 센터 계정에 이미 있어야 하고 앱에 대한 하나의 제출을 파트너 센터에 먼저 만들어야 합니다. 자세한 내용은 필수 조건을 참조하세요.
메서드 | 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 | 기존 앱 제출의 상태 가져오기 |
게시 | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions | 새 앱 제출 만들기 |
PUT | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} | 기존 앱 제출 업데이트 |
게시 | 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} | 앱 제출 삭제하기 |
앱 제출 만들기
앱에 대한 제출을 만들려면 이 프로세스를 수행합니다.
아직 완료하지 않은 경우 Microsoft Store 제출 API에 대한 모든 필수 조건을 완료합니다
참고 항목
연령별 등급 정보가 입력되어 있는 하나 이상의 완료된 제출이 앱에 이미 있어야 합니다.
Azure AD 액세스 토큰 가져오기. Microsoft Store 제출 API의 메서드에 이 액세스 토큰을 전달해야 합니다. 액세스 토큰을 가져온 후 만료되기까지 60분이 걸립니다. 토큰이 만료된 후 새 토큰을 가져올 수 있습니다.
Microsoft Store 제출 API에서 다음 메서드를 실행하여 앱 제출을 만듭니다. 이 메서드는 마지막으로 게시된 제출의 복사본인 진행 중인 새 제출을 만듭니다.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions
응답 본문에는 새 제출의 ID, Azure Blob Storage 제출용 관련 파일(앱 패키지, 목록 이미지, 예고편 파일 등)을 업로드할 수 있는 SAS(공유 액세스 서명) URI, 기타 새 제출 데이터 일체(목록 및 가격 정보 등)가 포함된 앱 제출 리소스가 포함되어 있습니다.
참고 항목
SAS URI는 계정 키를 요구하지 않고 Azure Storage의 보안 리소스에 대한 액세스를 제공합니다. SAS URI 및 Azure Blob Storage를 통한 SAS URI 사용에 대한 배경 정보는 공유 액세스 서명, 1부: SAS 모델 이해 및 공유 액세스 서명, 2부: Blob Storage를 사용하여 SAS 만들기 및 사용을 참조하세요.
제출에 대한 새 패키지, 목록 이미지 또는 예고편 파일을 추가하려면 앱 패키지를 준비하고 앱 스크린샷, 이미지, 예고편을 준비합니다. 이러한 모든 파일을 ZIP 보관 파일에 추가합니다.
새 제출에 필요한 변경 사항으로 앱 제출 데이터를 수정하고, 다음 메서드를 실행하여 앱 제출을 업데이트합니다.
PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}
참고 항목
제출에 대한 새 파일을 추가하는 경우 ZIP 보관 파일에서 이러한 파일의 이름 및 상대 경로를 참조하도록 제출 데이터를 업데이트해야 합니다.
제출에 대한 새 패키지, 목록 이미지 또는 예고편 파일을 추가하는 경우 이전에 호출한 POST 메서드의 응답 본문에 제공된 SAS URI를 사용하여 Azure Blob Storage에 ZIP 보관 파일을 업로드합니다. 다음과 같은 다양한 플랫폼에서 이 작업을 수행하는 데 사용할 수 있는 다양한 Azure 라이브러리가 있습니다.
다음 C# 코드 예제는 .NET용 Azure Storage 클라이언트 라이브러리의 CloudBlockBlob 클래스를 사용하여 Azure Blob Storage에 ZIP 보관 파일을 업로드하는 방법을 보여 줍니다. 이 예제에서는 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);
다음 메서드를 실행하여 앱 제출을 커밋합니다. 이렇게 하면 제출이 완료되었으며 업데이트가 이제 계정에 적용되어야 한다는 사실을 파트너 센터에 알립니다.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/commit
다음 메서드를 실행하여 커밋 상태를 확인하여 앱 제출의 상태를 가져옵니다.
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/status
제출 상태 확인하려면 응답 본문의 상태 값을 검토합니다. 이 값은 CommitStarted에서 PreProcessing(요청이 성공하는 경우)으로, 또는 CommitFailed(요청에 오류가 있는 경우)로 변경되어야 합니다. 오류가 있는 경우 statusDetails 필드에 오류에 대한 자세한 내용이 포함됩니다.
커밋이 성공적으로 완료되면 수집을 위해 제출이 스토어로 전송됩니다. 이전 방법을 사용하거나 파트너 센터를 방문하여 제출 진행 상황을 계속 모니터링할 수 있습니다.
점진적 패키지 출시를 관리하기 위한 메서드
Windows 10 및 Windows 11에서 앱 고객의 백분율로 앱 제출에서 업데이트된 패키지를 점진적으로 롤아웃할 수 있습니다. 이를 통해 특정 패키지에 대한 피드백 및 분석 데이터를 모니터링하여 업데이트를 보다 광범위하게 배포하기 전에 업데이트에 대한 확신을 가질 수 있습니다. 새 제출을 만들지 않고도 게시된 제출의 롤아웃 백분율을 변경하거나 업데이트를 중지할 수 있습니다. 파트너 센터에서 점진적 패키지 출시를 사용하도록 설정하고 관리하는 방법에 대한 지침을 비롯한 자세한 내용은 이 문서를 참조하세요.
Microsoft Store 제출 API에서 메서드를 사용하여 이 프로세스를 따르면 앱 제출에 대한 점진적 패키지 출시를 프로그래밍 방식으로 사용 설정할 수 있습니다.
- 앱 제출을 만들거나 기존 앱 제출을 가져옵니다.
- 응답 데이터에서 packageRollout 리소스를 찾고 isPackageRollout 필드를 true로 설정하고 packageRolloutPercentage 필드를 업데이트된 패키지를 가져와야 하는 앱 고객의 백분율로 설정합니다
- 업데이트된 앱 제출 데이터를 앱 제출 업데이트 메서드에 전달합니다.
앱 제출에 대해 점진적 패키지 롤아웃을 사용하도록 설정한 후 다음 메서드를 사용하여 점진적 출시를 프로그래밍 방식으로 가져오고, 업데이트하고, 중지 또는 완료할 수 있습니다.
메서드 | URI | 설명 |
---|---|---|
GET | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/packagerollout | 앱 제출에 대한 점진적 출시 정보 가져오기 |
게시 | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/updatepackagerolloutpercentage | 앱 제출에 대한 점진적 출시 백분율 업데이트 |
게시 | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/haltpackagerollout | 앱 제출에 대한 점진적 출시 중지 |
게시 | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/finalizepackagerollout | 앱 제출에 대한 점진적 출시 완료 |
앱 제출을 관리하기 위한 코드 예제
다음 문서는 여러 다른 프로그래밍 언어로 앱 제출을 만드는 방법을 보여 주는 자세한 코드 예제를 제공합니다.
- C# 샘플: 앱, 추가 기능 및 플라이트 제출
- C# 샘플: 게임 옵션과 예고편이 포함된 앱 제출
- Java 샘플: 앱, 추가 기능 및 플라이트 제출
- Java 샘플: 게임 옵션과 예고편이 포함된 앱 제출
- Python 샘플: 앱, 추가 기능 및 플라이트 제출
- Python 샘플: 게임 옵션과 예고편이 포함된 앱 제출
StoreBroker PowerShell 모듈
Microsoft Store 제출 API를 직접 호출하는 대신 이 API를 기반으로 명령줄 인터페이스를 구현하는 오픈 소스 PowerShell 모듈도 제공합니다. 이 모듈을 StoreBroker라고 합니다. 이 모듈을 사용하여 Microsoft Store 제출 API를 직접 호출하는 대신 명령줄에서 앱, 플라이트, 추가 기능 제출을 관리할 수 있습니다. 또는 소스에서 이 API를 호출하는 방법에 대한 예제를 더 찾아볼 수 있습니다. StoreBroker 모듈은 많은 자사 애플리케이션이 스토어에 제출되는 기본 방식으로 Microsoft 내에서 많이 사용됩니다.
자세한 내용은 GitHub의 StoreBroker 페이지를 참조하세요.
데이터 리소스
앱 제출을 관리하는 Microsoft Store 제출 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": []
}
이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
id | 문자열 | 제출 ID. 이 ID는 앱 제출 만들기, 모든 앱 가져오기, 앱 가져오기 요청에 대한 응답 데이터에서 사용할 수 있습니다. 파트너 센터에서 만든 제출의 경우, 파트너 센터의 제출 페이지 URL에서도 이 ID를 사용할 수 있습니다. |
applicationCategory | string | 앱의 범주 및/또는 하위 범주를 지정하는 문자열입니다. 범주 및 하위 범주는 BooksAndReference_EReader 같은 밑줄 '_' 문자가 있는 단일 문자열로 결합됩니다. |
가격 책정 | 개체 | 앱에 대한 가격 정보를 포함하는 가격 책정 리소스입니다. |
visibility | string | 앱의 가시성입니다. 이는 다음 값 중 하나일 수 있습니다.
|
targetPublishMode | string | 제출에 대한 게시 모드입니다. 이는 다음 값 중 하나일 수 있습니다.
|
targetPublishDate | string | targetPublishMode가 SpecificDate로 설정된 경우 ISO 8601 형식의 제출에 대한 게시 날짜입니다. |
목록 | 개체 | 키 및 값 쌍의 사전입니다. 여기서 각 키는 국가 코드이고 각 값은 앱에 대한 목록 정보를 포함하는 목록 리소스입니다. |
hardwarePreferences | 배열 | 앱의 하드웨어 기본 설정을 정의하는 문자열 배열입니다. 이는 다음 값 중 하나일 수 있습니다.
|
automaticBackupEnabled | 부울 값 | Windows에서 OneDrive에 대한 자동 백업에 앱의 데이터를 포함할 수 있는지 여부를 나타냅니다. 자세한 내용은 앱 기능 선언을 참조하세요. |
canInstallOnRemovableMedia | 부울 값 | 고객이 이동식 스토리지에 앱을 설치할 수 있는지 여부를 나타냅니다. 자세한 내용은 앱 기능 선언을 참조하세요. |
isGameDvrEnabled | 부울 값 | 앱에 게임 DVR을 사용할 수 있는지 여부를 나타냅니다. |
gamingOptions | 배열 | 앱에 대한 게임 관련 설정을 정의하는 게임 옵션 리소스가 포함된 배열입니다. |
hasExternalInAppProducts | 부울 값 | Microsoft Store 상거래 시스템 밖에서 사용자가 이 앱을 구매할 수 있는지 여부를 나타냅니다. 자세한 내용은 앱 기능 선언을 참조하세요. |
meetAccessibilityGuidelines | 부울 값 | 앱이 접근성 가이드라인을 충족하도록 테스트되었는지 여부를 나타냅니다. 자세한 내용은 앱 기능 선언을 참조하세요. |
notesForCertification | string | 앱 인증에 대한 메모를 포함합니다. |
status | 문자열 | 제출 상태. 이는 다음 값 중 하나일 수 있습니다.
|
statusDetails | 개체 | 상태 오류에 대한 정보를 포함하여 제출 상태에 대한 추가 세부 정보가 포함된 상태 세부 정보 리소스를 자세히 설명합니다. |
fileUploadUrl | string | 제출에 대한 패키지를 업로드하기 위한 SAS(공유 액세스 서명) URI입니다. 제출에 대한 새 패키지, 목록 이미지 또는 예고편 파일을 추가하는 경우 패키지 및 이미지가 포함된 ZIP 보관 파일을 이 URI에 업로드합니다. 자세한 내용은 앱 제출 만들기를 참조하세요. |
applicationPackages | 배열 | 제출의 각 패키지에 대한 세부 정보를 제공하는 애플리케이션 패키지 리소스의 배열입니다. |
packageDeliveryOptions | 개체 | 점진적 패키지 출시 및 제출에 대한 필수 업데이트 설정이 포함된 패키지 전달 옵션 리소스입니다. |
enterpriseLicensing | string | 앱의 엔터프라이즈 라이선스 동작을 나타내는 엔터프라이즈 라이선스 값 중 하나입니다. |
allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies | 부울 값 | Microsoft가 향후 Windows 10 및 Windows 11 디바이스 패밀리에서 앱을 사용할 수 있도록 허용되었는지 여부를 나타냅니다. |
allowTargetFutureDeviceFamilies | 개체 | 키 및 값 쌍의 사전입니다. 여기서 각 키는 Windows 10 및 Windows 11 디바이스 패밀리이고 각 값은 앱이 지정된 디바이스 패밀리를 대상으로 지정할 수 있는지 여부를 나타내는 부울 값입니다. |
friendlyName | string | 파트너 센터에 표시되는 제출의 식별 이름입니다. 이 값은 제출을 만들 때 생성됩니다. |
예고편 | 배열 | 앱 목록에 대한 비디오 예고편을 나타내는 최대 15개의 예고편 리소스가 포함된 배열입니다. |
가격 리소스
이 리소스에는 앱에 대한 가격 책정 정보가 포함되어 있습니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
trialPeriod | string | 앱의 평가 기간을 지정하는 문자열입니다. 이는 다음 값 중 하나일 수 있습니다.
|
marketSpecificPricings | 개체 | 키 및 값 쌍의 사전으로, 각 키는 2자로 된 ISO 3166-1 alpha-2 국가 코드이고 각 값은 가격 계층입니다. 이러한 항목은 특정 시장에서 앱에 대한 사용자 지정 가격을 나타냅니다. 이 사전의 모든 항목은 지정된 시장의 priceId 값으로 지정된 기본 가격을 재정의합니다. |
sales | 배열 | 더 이상 사용되지 않음 앱에 대한 판매 정보를 포함하는 판매 리소스의 배열입니다. |
priceId | string | 가격 계층으로서 앱의 기본 가격을 나타냅니다. |
isAdvancedPricingModel | 부울 값 | true인 경우 0.99 USD에서 1999.99 USD까지의 확장된 기준 가격 세트에 액세스할 수 있는 권한이 개발자 계정에 부여됩니다. false인 경우 0.99 USD에서 999.99 USD까지의 원래 기준 가격 세트에 액세스할 수 있는 권한이 개발자 계정에 부여됩니다. 여러 계층에 대한 자세한 내용은 기준 가격을 참조하세요. 참고 이 필드는 읽기 전용입니다. |
판매 리소스
이 리소스에는 앱에 대한 판매 정보가 포함됩니다.
Important
판매 리소스는 더 이상 지원되지 않으며, 현재 Microsoft Store 제출 API를 사용하여 앱 제출에 대한 판매 데이터를 가져오거나 수정할 수 없습니다. Microsoft Store 제출 API를 업데이트하여 앱 제출에 대한 판매 정보에 프로그래밍 방식으로 액세스하는 새로운 방법을 도입할 예정입니다.
- GET 메서드를 호출하여 앱 제출을 가져옵니다. sales 값은 비어 있습니다. 계속해서 파트너 센터를 사용하여 앱 제출에 대한 판매 데이터를 가져올 수 있습니다.
- PUT 메서드를 호출하여 앱 제출을 업데이트할 때, sales 값의 정보는 무시됩니다. 계속해서 파트너 센터를 사용하여 앱 제출에 대한 판매 데이터를 변경할 수 있습니다.
이 리소스의 값은 다음과 같습니다.
값 | 형식 | Description |
---|---|---|
이름 | string | 판매의 이름입니다. |
basePriceId | string | 판매의 기본 가격에 사용할 가격 계층입니다. |
startDate | string | ISO 8601 형식의 판매에 대한 시작 날짜입니다. |
endDate | string | ISO 8601 형식의 판매에 대한 종료 날짜입니다. |
marketSpecificPricings | 개체 | 키 및 값 쌍의 사전으로, 각 키는 2자로 된 ISO 3166-1 alpha-2 국가 코드이고 각 값은 가격 계층입니다. 이러한 항목은 특정 시장에서 앱에 대한 사용자 지정 가격을 나타냅니다. 이 사전의 모든 항목은 지정된 시장의 basePriceId 값으로 지정된 기본 가격을 재정의합니다. |
목록 리소스
이 리소스에는 앱에 대한 목록 정보가 포함되어 있습니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
baseListing | 개체 | 모든 플랫폼에 대한 기본 목록 정보를 정의하는 앱의 기본 목록 정보입니다. |
platformOverrides | 개체 | 키 및 값 쌍의 사전입니다. 여기서 각 키는 목록 정보를 재정의할 플랫폼을 식별하는 문자열이고, 각 값은 지정된 플랫폼에 대해 재정의할 목록 정보를 지정하는 기본 목록 리소스(설명에서 제목까지의 값만 포함)입니다. 키는 다음과 같은 값을 가질 수 있습니다.
|
기본 목록 리소스
이 리소스에는 앱에 대한 기본 목록 정보가 포함되어 있습니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
copyrightAndTrademarkInfo | string | 선택적 저작권 및/또는 상표 정보입니다. |
키워드 | 배열 | 앱이 검색 결과에 표시되는 데 도움이 되는 키워드(keyword) 배열입니다. |
licenseTerms | string | 앱에 대한 선택적 라이선스 조건입니다. |
privacyPolicy | string | 이 값은 사용되지 않습니다. 앱의 개인정보처리방침을 설정하거나 변경하려면 파트너 센터의 속성 페이지에서 이를 수행해야 합니다. 제출 API 호출에서 이 값을 생략할 수 있습니다. 이 값을 설정하면 값이 무시됩니다. |
supportContact | string | 이 값은 사용되지 않습니다. 앱의 지원 연락처 URL 또는 메일 주소를 설정하거나 변경하려면 파트너 센터의 속성 페이지에서 이를 수행해야 합니다. 제출 API 호출에서 이 값을 생략할 수 있습니다. 이 값을 설정하면 값이 무시됩니다. |
websiteUrl | string | 이 값은 사용되지 않습니다. 앱의 웹 페이지 URL을 설정하거나 변경하려면 파트너 센터의 속성 페이지에서 이를 수행해야 합니다. 제출 API 호출에서 이 값을 생략할 수 있습니다. 이 값을 설정하면 값이 무시됩니다. |
description | string | 앱 목록에 대한 설명입니다. |
features | 배열 | 앱의 기능을 나열하는 최대 20개의 문자열 배열입니다. |
releaseNotes | string | 앱의 출시 노트입니다. |
images | 배열 | 앱 목록에 대한 이미지 및 아이콘 리소스의 배열입니다. |
recommendedHardware | 배열 | 앱에 권장되는 하드웨어 구성을 나열하는 최대 11개의 문자열 배열입니다. |
minimumHardware | string | 앱의 최소 하드웨어 구성을 나열하는 최대 11개 문자열의 배열입니다. |
title | string | 앱 목록의 제목입니다. |
shortDescription | string | 게임에서만 사용됩니다. 이 설명은 Xbox One에 있는 Game Hub의 정보 섹션에 표시되며, 고객이 게임에 대해 자세히 이해하는 데 도움이 됩니다. |
shortTitle | string | 제품 이름의 짧은 버전입니다. 제공된 경우 이 짧은 이름은 Xbox One의 다양한 위치(설치 중, 도전 과제 등)에 제품의 전체 제목 대신 나타날 수 있습니다. |
sortTitle | string | 제품을 알파벳순으로 다르게 배열할 수 있는 경우에는 여기에 다른 버전을 입력할 수 있습니다. 이렇게 하면 고객이 제품을 보다 빨리 검색하는 데 도움이 될 수 있습니다. |
voiceTitle | string | 제품의 대체 이름이 있는 경우 Kinect 또는 헤드셋을 사용할 때 Xbox One의 오디오 환경에서 사용할 수 있습니다. |
devStudio | string | Developed by 필드를 목록에 포함하려는 경우 이 값을 지정합니다. Published by 필드는 devStudio 값 제공 여부와 상관없이 계정과 연결된 게시자 표시 이름을 나열합니다. |
이미지 리소스
이 리소스에는 앱 목록에 대한 이미지 및 아이콘 데이터가 포함되어 있습니다. 앱 목록의 이미지와 아이콘에 대한 자세한 내용은 앱 스크린샷 및 이미지를 참조하세요. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
fileName | string | 제출을 위해 업로드한 ZIP 아카이브의 이미지 파일 이름입니다. |
fileStatus | string | 이미지 파일의 상태입니다. 이는 다음 값 중 하나일 수 있습니다.
|
id | string | 이미지 ID입니다. 이 값은 파트너 센터에서 제공합니다. |
description | string | 이미지 설명. |
imageType | string | 이미지의 형식을 나타냅니다. 현재 다음 문자열을 지원하고 있습니다.
|
게임 옵션 리소스
이 리소스에는 앱의 게임 관련 설정이 포함되어 있습니다. 이 리소스의 값은 파트너 센터 제출의 게임 설정과 일치합니다.
{
"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"
}
],
}
이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
장르 | 배열 | 게임 장르를 설명하는 다음 문자열을 하나 이상 배열한 것입니다.
|
isLocalMultiplayer | 부울 값 | 게임이 로컬 멀티 플레이어를 지원하는지 나타냅니다. |
isLocalCooperative | 부울 값 | 게임이 로컬 협동을 지원하는지 나타냅니다. |
isOnlineMultiplayer | 부울 값 | 게임이 온라인 멀티플레이어를 지원하는지 나타냅니다. |
isOnlineCooperative | 부울 값 | 게임이 온라인 협동을 지원하는지 나타냅니다. |
localMultiplayerMinPlayers | int | 게임이 로컬 멀티플레이어에서 지원하는 플레이어의 최소 수를 지정합니다. |
localMultiplayerMaxPlayers | int | 게임이 로컬 멀티플레이어에서 지원하는 플레이어의 최대 수를 지정합니다. |
localCooperativeMinPlayers | int | 게임이 로컬 협동에서 지원하는 플레이어의 최소 수를 지정합니다. |
localCooperativeMaxPlayers | int | 게임이 로컬 협동에서 지원하는 플레이어의 최대 수를 지정합니다. |
isBroadcastingPrivilegeGranted | 부울 값 | 게임이 브로드캐스팅을 지원하는지 나타냅니다. |
isCrossPlayEnabled | 부울 값 | 게임이 Windows 10 및 Windows 11 PC와 Xbox의 플레이어 간 멀티 플레이어 세션을 지원하는지 여부를 나타냅니다. |
kinectDataForExternal | string | 다음 문자열 값은 게임이 Kinect 데이터를 수집해 외부 서비스로 전송할 수 있는지 나타냅니다.
|
참고 항목
Microsoft Store 제출 API를 개발자에게 처음 출시한 후 2017년 5월에 gamingOptions 리소스가 추가되었습니다. 이 리소스가 도입되기 전에 제출 API를 통해 앱 제출을 생성했고, 이 제출이 아직 진행 중이라면 제출을 성공적으로 커밋하거나 삭제하기 전에 이 리소스는 앱 제출에 대해 null 상태가 됩니다. 앱 제출에 gamingOptions 리소스를 사용할 수 없는 경우 앱 가져오기 메서드에서 반환된 애플리케이션 리소스의 hasAdvancedListingPermission 필드는 false입니다.
상태 세부 정보 리소스
이 리소스에는 제출 상태에 대한 추가 세부 정보가 포함되어 있습니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
오류 | 개체 | 제출에 대한 오류 세부 정보가 포함된 상태 세부 리소스의 배열입니다. |
경고 | 개체 | 제출에 대한 경고 세부 정보가 포함된 상태 세부 리소스의 배열입니다. |
certificationReports | 개체 | 제출에 대한 인증 보고서 데이터에 대한 액세스를 제공하는 인증 보고서 리소스의 배열입니다. 인증에 실패하는 경우 이러한 보고서를 검사하여 자세한 정보를 확인할 수 있습니다. |
상태 세부 정보 리소스
이 리소스에는 제출에 대한 관련 오류 또는 경고에 대한 추가 정보가 포함되어 있습니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
코드 | string | 오류 또는 경고 유형을 설명하는 제출 상태 코드입니다. |
details | 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"
]
}
],
}
이 리소스의 값은 다음과 같습니다.
참고 항목
앱 제출 업데이트 메서드를 호출하는 경우 요청 본문에 이 개체의 fileName, fileStatus, minimumDirectXVersion, minimumSystemRam 값만 필요합니다. 다른 값은 파트너 센터에서 채워집니다.
값 | 형식 | 설명 |
---|---|---|
fileName | string | 패키지 이름 |
fileStatus | string | 패키지의 상태입니다. 이는 다음 값 중 하나일 수 있습니다.
|
id | string | 패키지를 고유하게 식별하는 ID입니다. 이 값은 파트너 센터에서 제공합니다. |
version | string | 앱 패키지의 버전입니다. 자세한 내용은 패키지 버전 번호 지정을 참조하세요. |
아키텍처 | string | 패키지의 아키텍처(예: ARM)입니다. |
languages | 배열 | 앱에서 지원하는 언어의 언어 코드 배열입니다. 자세한 내용은 지원되는 언어를 참조하세요. |
capabilities | 배열 | 패키지에 필요한 기능 배열입니다. 기능에 대한 자세한 내용은 앱 기능 선언을 참조하세요. |
minimumDirectXVersion | string | 앱 패키지에서 지원하는 최소 DirectX 버전입니다. 이는 Windows 8.x를 대상으로 하는 앱에서만 설정할 수 있습니다. 다른 OS 버전을 대상으로 하는 앱의 경우 이 값은 앱 제출 업데이트 메서드를 호출할 때 있어야 하지만 지정한 값은 무시됩니다. 이는 다음 값 중 하나일 수 있습니다.
|
minimumSystemRam | string | 앱 패키지에 필요한 최소 RAM입니다. 이는 Windows 8.x를 대상으로 하는 앱에서만 설정할 수 있습니다. 다른 OS 버전을 대상으로 하는 앱의 경우 이 값은 앱 제출 업데이트 메서드를 호출할 때 있어야 하지만 지정한 값은 무시됩니다. 이는 다음 값 중 하나일 수 있습니다.
|
targetDeviceFamilies | 배열 | 패키지가 대상으로 하는 디바이스 패밀리를 나타내는 문자열 배열입니다. 이 값은 Windows 10을 대상으로 하는 패키지에만 사용됩니다. 이전 릴리스를 대상으로 하는 패키지의 경우 이 값에는 None 값이 있습니다. 다음 디바이스 패밀리 문자열은 현재 Windows 10 및 Windows 11 패키지에 대해 지원되며, 여기서 {0}은 10.0.10240.0, 10.0.10586.0 또는 10.0.14393.0과 같은 Windows 10 또는 Windows 11 버전 문자열입니다.
|
id="certification-report-resource"
인증 보고서 리소스
이 리소스는 제출에 대한 인증 보고서 데이터에 대한 액세스를 제공합니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
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"
},
}
이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
packageRollout | 개체 | 제출에 대한 점진적 패키지 출시 설정이 포함된 패키지 롤아웃 리소스입니다. |
isMandatoryUpdate | 부울 값 | 자체 설치 앱 업데이트에 대해 이 제출의 패키지를 필수로 처리할지 여부를 나타냅니다. 앱 업데이트를 자체 설치하기 위한 필수 패키지에 대한 자세한 내용은 앱에 대한 패키지 업데이트 다운로드 및 설치를 참조하세요. |
mandatoryUpdateEffectiveDate | date | 이 제출의 패키지가 필수가 되는 날짜 및 시간(ISO 8601 형식 및 UTC 표준 시간대)입니다. |
패키지 롤아웃 리소스
이 리소스에는 제출에 대한 점진적 패키지 출시 설정이 포함되어 있습니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
isPackageRollout | 부울 값 | 제출에 대해 점진적 패키지 롤아웃을 사용할 수 있는지 여부를 나타냅니다. |
packageRolloutPercentage | float | 점진적 출시에서 패키지를 받을 사용자의 비율입니다. |
packageRolloutStatus | string | 점진적 패키지 롤아웃의 상태를 나타내는 다음 문자열 중 하나입니다.
|
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."
}
]
}
}
}
]
}
이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
id | string | 예고편 ID입니다. 이 값은 파트너 센터에서 제공합니다. |
videoFileName | string | 제출용 파일이 든 ZIP 보관 파일의 예고편 비디오 파일 이름입니다. |
videoFileId | string | 예고편 비디오 파일 ID입니다. 이 값은 파트너 센터에서 제공합니다. |
trailerAssets | 개체 | 키와 값 쌍의 사전입니다. 여기서 각 키는 언어 코드이며 각 값은 예고편에 대한 지역에 특정적인 추가 자산이 포함된 예고편 자산 리소스입니다. 지원 언어 코드에 대한 자세한 내용은 지원 언어를 참조하세요. |
참고 항목
Microsoft Store 제출 API를 개발자에게 처음 출시한 후 2017년 5월에 예고편 리소스가 추가되었습니다. 이 리소스가 도입되기 전에 제출 API를 통해 앱 제출을 생성했고, 이 제출이 아직 진행 중이라면 제출을 성공적으로 커밋하거나 삭제하기 전에 이 리소스는 앱 제출에 대해 null 상태가 됩니다. 앱 제출에 예고편 리소스를 사용할 수 없는 경우 앱 가져오기 메서드에서 반환된 애플리케이션 리소스의 hasAdvancedListingPermission 필드는 false입니다.
예고편 자산 리소스
이 리소스에는 예고편 리소스에서 정의된 예고편에 대한 지역에 특정적인 추가 자산이 포함되어 있습니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
제목 | string | 예고편의 지역화된 제목입니다. 사용자가 전체 화면으로 예고편을 재생할 때 제목이 표시됩니다. |
imageList | 배열 | 예고편용 미리 보기 이미지를 제공하는 하나의 이미지 리소스가 포함된 배열입니다. 이 배열에 하나의 이미지만 포함할 수 있습니다. |
이미지 리소스(예고편용)
이 리소스는 예고편용 미리 보기 이미지를 설명합니다. 이 리소스의 값은 다음과 같습니다.
값 | 형식 | 설명 |
---|---|---|
fileName | string | 제출을 위해 업로드한 ZIP 보관 파일에 있는 미리 보기 이미지 파일의 이름입니다. |
id | string | 미리 보기 이미지 ID입니다. 이 값은 파트너 센터에서 제공합니다. |
description | string | 미리 보기 이미지에 대한 설명입니다. 이 값은 메타데이터에만 해당하며 사용자에게 표시되지 않습니다. |
열거형
이러한 메서드는 다음 열거형을 사용합니다.
가격 책정 계층
다음 값은 앱 제출에 대한 가격 리소스 리소스에서 사용할 수 있는 기준 가격을 나타냅니다.
값 | 설명 |
---|---|
Base | 기준 가격이 설정되지 않았습니다. 앱에 대한 기본 가격을 사용합니다. |
NotAvailable | 지정 지역에서 사용할 수 없는 앱입니다. |
Free | 앱은 무료입니다. |
계층xxx | 앱에 대한 기준 가격을 계층xxxx 형식으로 지정하는 문자열입니다. 현재 다음 범위의 기준 가격이 지원됩니다. 각 계층과 관련된 시장별 가격을 포함하여 개발자 계정에 사용할 수 있는 기준 가격을 나열한 전체 표를 보려면 파트너 센터에서 앱 제출에 대한 가격 책정 및 가용성 페이지로 이동하여 지역/국가 및 사용자 지정 가격 섹션에 있는 표 보기 링크를 클릭합니다(일부 개발자 계정의 경우, 이 링크는 가격 책정 섹션에 있음). |
엔터프라이즈 라이선스 값
다음 값은 앱에 대한 조직 라이선스 동작을 나타냅니다. 이러한 옵션에 대한 자세한 내용은 조직 라이선스 옵션을 참조하세요.
참고 항목
제출 API를 통한 앱 제출에 대해 조직 라이선스 옵션을 구성할 수 있지만 비즈니스용 Microsoft Store 및 교육용 Microsoft Store를 통한 대량 구매를 위한 제출을 게시하는 데는 이 API를 사용할 수 없습니다. 비즈니스용 Microsoft Store 및 교육용 Microsoft Store에 제출을 게시하려면 파트너 센터를 사용해야 합니다.
값 | 설명 |
---|---|
None | 스토어 관리(온라인) 볼륨 라이선싱이 있는 기업에서 앱을 사용할 수 있게 하지 마세요. |
온라인 | 엔터프라이즈에서 스토어 관리(온라인) 볼륨 라이선싱으로 앱을 사용할 수 있습니다. |
OnlineAndOffline | 스토어 관리(온라인) 볼륨 라이선스를 사용하여 엔터프라이즈에서 앱을 사용할 수 있도록 하고, 연결이 끊긴(오프라인) 라이선스를 통해 엔터프라이즈에서 앱을 사용할 수 있도록 합니다. |
제출 상태 코드
다음 값은 제출의 상태 코드를 나타냅니다.
값 | 설명 |
---|---|
None | 코드가 지정되지 않았습니다. |
InvalidArchive | 패키지가 포함된 ZIP 보관 파일이 잘못되었거나 인식할 수 없는 보관 형식이 있습니다. |
MissingFiles | ZIP 보관 파일에 제출 데이터에 나열된 모든 파일이 없거나 보관 파일의 잘못된 위치에 있습니다. |
PackageValidationFailed | 제출에서 하나 이상의 패키지의 유효성을 검사하지 못했습니다. |
InvalidParameterValue | 요청 본문의 매개 변수 중 하나가 잘못되었습니다. |
InvalidOperation | 시도한 작업이 잘못되었습니다. |
InvalidState | 시도한 작업이 패키지 플라이트의 현재 상태에 대해 유효하지 않습니다. |
ResourceNotFound | 지정된 패키지 플라이트를 찾을 수 없습니다. |
ServiceError | 내부 서비스 오류로 인해 요청이 성공하지 못했습니다. 요청을 다시 시도합니다. |
ListingOptOutWarning | 개발자가 이전 제출에서 목록을 제거했거나 패키지에서 지원하는 목록 정보를 포함하지 않았습니다. |
ListingOptInWarning | 개발자가 목록을 추가했습니다. |
UpdateOnlyWarning | 개발자가 업데이트 지원만 있는 항목을 삽입하려고 합니다. |
기타 | 제출이 인식할 수 없거나 분류되지 않은 상태입니다. |
PackageValidationWarning | 패키지 유효성 검사 프로세스로 인해 경고가 발생했습니다. |