StoreBroker/IapConfigTemplate.json
// Copyright (C) Microsoft Corporation. All rights reserved.
// This configuration file is for use with the StoreBroker PowerShell module. // Configure details of the In-App Product ("add on") here, as well as the location of resources // used by the packaging tool. // Inline Comments can be placed in this file using the '//' delimiter. // The delimiter and any remaining text on that line will be removed. { // New-InAppProductSubmissionPackage parameters // // If you notice one of the parameters you specify to New-InAppProductSubmissionPackage does not change, you can specify it here // in order to avoid providing it at runtime. If New-InAppProductSubmissionPackage does not have a parameter it needs, it will // check the provided config file for a non-null, non-empty value. The exception to this is -ConfigPath which must // always be provided. For information on these parameters see the README.md or run `help New-InAppProductSubmissionPackage -ShowWindow` // // WARNING: Specifying a parameter at runtime will ignore any value placed in the config file. "packageParameters": { // There are two supported layouts for your PDP files: // 1. <PDPRootPath>\<lang-code>\...\PDP.xml // 2. <PDPRootPath>\<Release>\<lang-code>\...\PDP.xml // The only difference between these two is that there is a <Release> directory after the // <PDPRootPath> and before the <lang-code> sub-directories. // // The first layout is generally used when your localization system will be downloading // the localized PDP files during your build. In that situation, it's always retrieving // the latest version. Alternatively, if the latest localized versions of your PDP // files are always stored in the same location, this layout is also for you. // // On the other hand, if you will be archiving the localized PDP's based on each release // to the Store, then the second layout is the one that you should use. In this scenario, // you will specify the value of "<Release>" immediately below, or at the commandline. // // Only specify 'PDPRootPath' here if it does not change. // DO NOT use environment variables in the config. If you need to use an environment // variable to get to the right path, then you need to specify that path at the commandline // instead. // // File separator '\' must be escaped, i.e. '\\' // Ex: \\\\filehare\\Public\\AppPDPs\\MyApp "PDPRootPath": "", // If your PDP files are being placed in a directory structure like this: // <PDPRootPath>\<Release>\<lang-code>\...\PDP.xml // then specify the correct 'Release' here or at runtime. "Release": "", // Filenames that SHOULD be processed. // Wildcards are allowed, eg "InAppProductDescription*.xml". // It is fine to specify both "PDPInclude" and "PDPExclude". // // Ex: "PDPInclude": [ // "IapPDP*.xml", <- Comma to separate items // "InAppProductDescription.xml" <- No comma for last item, or JSON deserialization will fail // ] "PDPInclude": [ ], // Filenames that SHOULD NOT be processed. // Wildcards are allowed, eg "InAppProductDescription*.xml". // It is fine to specify both "PDPInclude" and "PDPExclude". // It is NOT necessary to specify something here, but you can to be more explicit. // // Ex: "PDPExclude": [ // "*.xml.lss", <- Comma to separate items // "*.xml.lct" <- No comma for last item, or JSON deserialization will fail // ] "PDPExclude": [ ], // Languages to be excluded from processing by New-InAppProductSubmissionPackage. // New-InAppProductSubmissionPackage will use the filepath of a PDP XML file // to identify the language of the metadata. If it sees a match // with a lang-code in this list, it will skip processing the file. // // Ex: "LanguageExclude": [ // "default", <- Comma to separate items // "qps-ploc" <- No comma for last item, or JSON deserialization will fail // ], "LanguageExclude": [ "default" ], // Your store screenshots must be placed with this structure: // <ImagesRootPath>\<Release>\<lang-code>\...\img.png // Specify 'ImagesRootPath' here. // // IMPORTANT: The 'Release' that will be used here is *NOT* the value specified to // New-InAppProductSubmissionPackage (nor is it the Release value specified earlier in this config file), // but rather the 'Release' attribute at the top of the corresponding PDP file. // // File separator '\' must be escaped, i.e. '\\' // Ex: \\\\fileshare\\Public\\Screenshots\\MyApp "ImagesRootPath": "", // Some apps may not localize all of their metadata media (images, trailers, etc..) across all languages. // By default, StoreBroker will look in the PDP langcode's subfolder within ImagesRootPath for that // language's media content. If the requested filename is not found, StoreBroker packaging will fail. // If you specify a fallback language here (e.g. 'en-us'), then if the requested file isn't found in // the PDP language's media subfolder, StoreBroker will then look into the fallback language's media // subfolder for the exactly same-named image before failing. "MediaFallbackLanguage": "", // Full path to a directory where the Packaging Tool can write the .json submission request // body and .zip package to upload. // // File separator '\' must be escaped, i.e. '\\' // Ex: "OutPath": "C:\\app\\output" "OutPath": "", // Common name to give to the .json and .zip files outputted by the Packaging Tool. "OutName": "" }, // Configure details of the IAP Submission "iapSubmission": { // If known, this is the IapId given to your in-app application ("add on") by the Windows Store. // This isn't required, but adding this will help protect you from submitting something // to the wrong product when working at the commandline. // // Ex: "iapId": "0ABCDEF12345" "iapId": "", ///////////////////////////////// // // // PUBLISH MODE AND VISIBILITY // // // ///////////////////////////////// // Publish mode of the submission. One of ["NotSet", "Immediate", "Manual", "SpecificDate"] "targetPublishMode": "NotSet", // Publish date-time of the submission if the "targetPublishMode" is specified as "SpecificDate". // Date-time format should follow the ISO 8601 standard. // Ex: "2000-01-30T00:00:00-08:00" "targetPublishDate": null, // Visibility of the add-on. One of ["NotSet", "Public", "Private", "Hidden"] // // Public: Anyone can find your add-on in the Store. // Private: Hide this add-on in the Store. Customers with a direct link to the add-on's listing can still download // it, except on Windows 8 and Windows 8.1. // Hidden: Hide this add-on and prevent acquisition. Customers with a promotional code can still download it on // Windows 10 devices. "visibility": "NotSet", /////////////////////// // // // PROPERTIES // // // /////////////////////// // lifetime // one of: // ["Forever", "OneDay", "ThreeDays", "FiveDays", "OneWeek", "TwoWeeks", "OneMonth", "TwoMonths", "ThreeMonths", "SixMonths", "OneYear"] "lifetime": "Forever", // contentType - Regardless of your add-on's product type, you'll also need to indicate the // type of content you're offering. For most add-ons, the content type should be "OnlineDownload". // If another option from the list seems to describe your add-on better (for example, if you // are offering a music download or an e-book), select that option instead. // // one of: // ["NotSet", "BookDownload", "EMagazine", "ENewspaper", "MusicDownload", "MusicStream", // "OnlineDataStorage", "VideoDownload", "VideoStream", "Asp", "OnlineDownload"] "contentType": "NotSet", // Your app can then query for add-ons that match these words. // This feature lets you build screens in your app that can load add-ons without you having to // directly specify the product ID in your app's code. You can then change the add-on's keywords // anytime, without having to make code changes in your app or submit the app again. // Maximum: 10 keywords of up to 30 characters each "keywords": [ ], // The custom developer data for the add-on (this information was previously called the 'tag'). // You can use this to provide extra context for your in-app product. // Your app can query this value dynamically, and you can adjust the value at any time by // updating the info in the add-on's Custom developer data field, without having to make code // changes in your app or submit the app again. // Maximum: 3000 characters // The contents must be provided on one line, but it is possible to specify multiline content using "\r\n". // Ex: "tag": "These\r\nare\r\nfour\r\nlines" "tag": "", ////////////////////////////// // // // PRICING AND AVAILABILITY // // // ////////////////////////////// // Pricing // // Your add-on will be priced according to the price tier set for "priceId" and will be marketed at // that tier for ALL available markets. To set a different price for a specific market, use the // "marketSpecificPricings" object. You can also use the "marketSpecificPricings" object to make // your add-on "NotAvailable" to a specific market. // // It is not currently possible to programmatically access or set sales information via the // Windows Store Submission API for add-on submissions at this time. "pricing": { // Price // // Set the price of the add-on. // The value provided should be a "Tier" and NOT an actual price // For a mapping of "Tiers" to prices, refer to https://docs.microsoft.com/en-us/windows/uwp/monetize/manage-add-on-submissions#price-tiers // Can also be "Free" or "NotAvailable" "priceId": "NotAvailable", // Market Specific Pricing // // By default, your add-on will be marketed at the price tier set for "priceId" for all possible markets. // To set a different price tier for a specific region, add the ("region": "Tier") key-value pair. // // For a list of supported regions, see https://msdn.microsoft.com/en-us/library/windows/apps/mt148563.aspx "marketSpecificPricings": { } }, ///////////////////////////// // // // NOTES FOR CERTIFICATION // // // ///////////////////////////// // String. Information that helps testers use and understand this submission. // Customers won't see this info. // Can include information such as test account credentials, steps to access and verify features, etc. // // The notes must be provided on one line, but it is possible to specify multiline notes using "\r\n". // Ex: "notesForCertification": "These\r\nare\r\nfour\r\nlines" "notesForCertification": "" } } |