StoreBroker/AppConfigTemplate.json

// Copyright (C) Microsoft Corporation. All rights reserved.
 
// This configuration file is for use with the StoreBroker PowerShell module.
// Configure details of the app 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-SubmissionPackage parameters
    //
    // If you notice one of the parameters you specify to New-SubmissionPackage does not change, you can specify it here
    // in order to avoid providing it at runtime. If New-SubmissionPackage 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-SubmissionPackage -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 "ProductDescription*.xml".
    // It is fine to specify both "PDPInclude" and "PDPExclude".
    //
    // Ex: "PDPInclude": [
    // "PDP*.xml", <- Comma to separate items
    // "ProductDescription.xml" <- No comma for last item, or JSON deserialization will fail
    // ]
    "PDPInclude": [
    ],
 
    // Filenames that SHOULD NOT be processed.
    // Wildcards are allowed, eg "ProductDescription*.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-SubmissionPackage.
    // New-SubmissionPackage 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-SubmissionPackage (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": "",
 
    // Specify any number of full paths to .appx, .appxbundle, or .appxupload files here.
    // Ex:
    // "AppxPath": [
    // "C:\app\x86\MyApp_x86.appxupload", <- Comma to separate items
    // "C:\app\x64\MyApp_x64.appxupload" <- No comma for last item, or JSON deserialization will fail
    // ]
    //
    // 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. In order to specify a list of paths at the commandline, just separate them
    // by commas and but the whole list in parenthesis:
    // Ex: ("C:\app\x86\MyApp_x86.appxupload", "C:\app\x64\MyApp_x64.appxupload")
    //
    // NOTE: File separator '\' must be escaped, i.e. '\\'
    // Ex: \\\\fileshare\\Public\\AppPDPs\\MyApp
    "AppxPath": [
    ],
 
    // 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": "",
 
    // By default, the packages will be renamed using a consistent naming scheme, which
    // embeds the application name, version, as well as targeted platform and architecture.
    // Ex: "Desktop_MyApp_2.13.22002.0_x86.appxupload"
    // To retain the existing package filenames instead, set this to true.
    "DisableAutoPackageNameFormatting": false
  },
 
    // Configure details of the App Submission
 
    "appSubmission": {
 
        // If known, this is the AppId given to your application by the Windows Store.
        // This isn't required, but adding this will help protect you from submitting something
        // to the wrong application when working at the commandline.
        //
        // Ex: "appId": "0ABCDEF12345"
        "appId": "",
 
        /////////////////////////////////
        // //
        // 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 app. One of ["NotSet", "Public", "Private", "Hidden"]
        //
        // Public: Anyone can find your app in the Store.
        // Private: Hide this app in the Store. Customers with a direct link to the app's listing can still download
        // it, except on Windows 8 and Windows 8.1.
        // Hidden: Hide this app and prevent acquisition. Customers with a promotional code can still download it on
        // Windows 10 devices.
        "visibility": "NotSet",
 
        //////////////////////////////
        // //
        // PRICING AND AVAILABILITY //
        // //
        //////////////////////////////
 
        // Pricing
        //
        // Your app 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 app "NotAvailable" to a specific market.
        //
        // If your app is having a sale, set that here using the "sales" object.
        "pricing": {
 
            // Price
            //
            // Set the price of the app.
            // 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",
 
            // Trial period. One of ["NoFreeTrial", "OneDay", "SevenDays", "FifteenDays", "ThirtyDays", "TrialNeverExpires"]
            "trialPeriod": "NoFreeTrial",
 
            // Market Specific Pricing
            //
            // By default, your app 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": {
            },
 
            // Sales
            //
            // Sales follow the same pattern as the general "pricing" object. Specify a "basePriceId" and the
            // app will be on sale at that price tier for ALL possible markets. To specify a different price tier
            // for a specific region, or to exclude a region from the sale ("NotAvailable"), use "marketSpecificPricings"
            // exactly as you would above. Specify a "startDate" and "endDate" according to the ISO 8601
            // e.g. "2000-01-30T00:00:00-08:00". Finally, give a "name" for the sale, to identify it in the portal.
            //
            // Specify any number of "Sale" objects here. A "Sale" object has the following format:
            //
            // { <- Open-curly to start the object
            // "name": "",
            // "basePriceId": "",
            // "marketSpecificPricings": {
            // },
            // "startDate": "",
            // "endDate": "" <- No comma for last item, or JSON deserialization will fail
            // } <- Closing-curly to end the object
            //
            //
            // Ex:
            // "sales": [
            // {
            // "name": "Sale1",
            // "basePriceId": "Free",
            // "marketSpecificPricings": {
            // "ca-es": "NotAvailable", <- Comma to separate key-value pairs
            // "es-mx": "Tier2" <- No comma for last item, or JSON deserialization will fail
            // },
            // "startDate": "2000-01-30T00:00:00-08:00",
            // "endDate": "2000-02-07T00:00:00-08:00"
            // }, <- Comma to separate "Sale" objects
            // {
            // "name": "Sale2",
            // "basePriceId": "Tier1",
            // "marketSpecificPricings": {
            // "en-gb": "NotAvailable",
            // "fr-ca": "NotAvailable",
            // "es-mx": "Tier2"
            // },
            // "startDate": "2000-03-01T00:00:00-08:00",
            // "endDate": "2001-01-01T00:00:00-08:00"
            // } <- No comma for last item, or JSON deserialization will fail
            // ]
            "sales": [
            ]
        },
 
        // Define the preference to make this app available for each Win10Device
        "allowTargetFutureDeviceFamilies": {
            "Xbox": false,
            "Team": false, // Surface Hub
            "Holographic": false,
            "Desktop": false,
            "Mobile": false
        },
 
        // True, Let Microsoft decide whether to make this app available to any future device families.
        // False, Require your permission before making this app available to any future device families.
        "allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies": false,
 
        // EnterpriseLicensing. One of ["None", "Online", "OnlineAndOffline"]
        //
        // You can allow organizations to acquire your app in volume through the options below.
        // Note that changes will only affect new acquisitions; anyone who already has your app
        // will be able to continue using it. Initially, only free apps will be offered for volume
        // acquisition. Selections you make for paid apps will take effect once support is added
        // for acquiring them in volume at a later date.
        //
        // Online: Make app available to organizations with Store-managed (online) volume licensing.
        // This allows organizations to acquire your app in volume. App licenses will be managed
        // through the Store's online licensing system.
        // OnlineAndOffline: In addition, allow disconnected (offline) licensing for organizations.
        // This allows organizations to acquire your app in volume. They can then download your
        // package and a license which lets them install it to devices without accessing the
        // Store's online licensing system.
        "enterpriseLicensing": "None",
 
        ////////////////////
        // //
        // APP PROPERTIES //
        // //
        ////////////////////
 
        // Category/SubCategory of the submission. Either
        // "NotSet"
        // or one of:
        // ["BooksAndReference", "BooksAndReference_EReader", "BooksAndReference_Fiction", "BooksAndReference_Nonfiction",
        // "BooksAndReference_Reference", "Business", "Business_AccountingAndFinance", "Business_Collaboration",
        // "Business_CRM", "Business_DataAndAnalytics", "Business_FileManagement", "Business_InventoryAndLogistics",
        // "Business_LegalAndHR", "Business_ProjectManagement", "Business_RemoteDesktop", "Business_SalesAndMarketing",
        // "Business_TimeAndExpenses", "DeveloperTools", "DeveloperTools_Database", "DeveloperTools_DesignTools",
        // "DeveloperTools_DevelopmentKits", "DeveloperTools_Networking", "DeveloperTools_ReferenceAndTraining",
        // "DeveloperTools_Servers", "DeveloperTools_Utilities", "DeveloperTools_Webhosting", "Education",
        // "Education_BooksAndReference", "Education_EarlyLearning", "Education_InstructionalTools", "Education_Language",
        // "Education_StudyAids", "Entertainment", "FoodAndDining", "Games", "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", "GovernmentAndPolitics",
        // "HealthAndFitness", "KidsAndFamily", "KidsAndFamily_BooksAndReference", "KidsAndFamily_Entertainment",
        // "KidsAndFamily_HobbiesAndToys", "KidsAndFamily_SportsAndActivities", "KidsAndFamily_Travel", "Lifestyle",
        // "Lifestyle_Automotive", "Lifestyle_DIY", "Lifestyle_HomeAndGarden", "Lifestyle_Relationships",
        // "Lifestyle_SpecialInterest", "Lifestyle_StyleAndFashion", "Medical", "MultimediaDesign",
        // "MultimediaDesign_IllustrationAndGraphicDesign", "MultimediaDesign_MusicProduction",
        // "MultimediaDesign_PhotoAndVideoProduction", "Music", "NavigationAndMaps", "NewsAndWeather",
        // "NewsAndWeather_News", "NewsAndWeather_Weather", "PersonalFinance", "PersonalFinance_BankingAndInvestments",
        // "PersonalFinance_BudgetingAndTaxes", "Personalization", "Personalization_RingtonesAndSounds",
        // "Personalization_Themes", "Personalization_WallpaperAndLockScreens", "PhotoAndVideo", "Productivity",
        // "Security", "Security_PCProtection", "Security_PersonalSecurity", "Shopping", "Social", "Sports", "Travel",
        // "Travel_CityGuides", "Travel_Hotels", "UtilitiesAndTools", "UtilitiesAndTools_BackupAndManage"
        // "UtilitiesAndTools_FileManager"]
        "applicationCategory": "NotSet",
 
        // Hardware (Preferences)
        //
        // Any of ["Undefined", "Touch", "Keyboard", "Mouse", "Camera", "Nfc", "NfcHce", "BluetoothLE", "Telephony"]
        // Ex: "hardwarePreferences": [
        // "Touch",
        // "Mouse" <- No comma for last item, or JSON deserialization will fail
        // ],
 
        // Hardware Preferences
        //
        // Indicate which hardware features are required in order for your app to run properly.
        // Customers on hardware that doesn't meet your app's preferences will see a warning before they download your app,
        // and they won't be able to rate or review it.
        "hardwarePreferences": [
        ],
 
        // Indicates whether the app sells In-App-Products from 3rd parties.
        "hasExternalInAppProducts": false,
 
        // Indicates whether the App meets accessibility guidelines.
        "meetAccessibilityGuidelines": false,
 
        // Indicates whether the app can be installed on removable media.
        "canInstallOnRemovableMedia": false,
 
        // Indicates whether OneDrive backup is enabled on the app instance being submitted.
        "automaticBackupEnabled": false,
 
        // Indicates whether customers can use Windows 10 features to record and broadcast clips of this game.
        // Only supported for app in the "Games" category.
        "isGameDvrEnabled": false,
 
        /////////////////////
        // //
        // GAMING OPTIONS //
        // //
        /////////////////////
 
        // Up-to-date documentation for all possible option values can be found here:
        // https://docs.microsoft.com/en-us/windows/uwp/monetize/manage-app-submissions#gaming-options-object
        "gamingOptions": [{
            // An array of one or more of the following strings that describe the genres of the game:
            // ["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"]
            "genres": [
            ],
 
            // Indicates whether the game supports local multiplayer.
            "isLocalMultiplayer": false,
 
            // Indicates whether the game supports local co-op.
            "isLocalCooperative": false,
 
            // Indicates whether the game supports online multiplayer.
            "isOnlineMultiplayer": false,
 
            // Indicates whether the game supports online co-op.
            "isOnlineCooperative": false,
 
            // Specifies the minimum number of players the game supports for local multiplayer.
            "localMultiplayerMinPlayers": 0,
 
            // Specifies the maximum number of players the game supports for local multiplayer.
            "localMultiplayerMaxPlayers": 0,
 
            // Specifies the minimum number of players the game supports for local co-op.
            "localCooperativeMinPlayers": 0,
 
            // Specifies the maximum number of players the game supports for local co-op.
            "localCooperativeMaxPlayers": 0,
 
            // Indicates whether the game supports broadcasting.
            "isBroadcastingPrivilegeGranted": false,
 
            // Indicates whether the game supports multiplayer sessions between players on Windows 10 PCs and Xbox.
            "isCrossPlayEnabled": false,
 
            // One of the following string values that indicates whether the game can collect Kinect data and send it to external services:
            // ["NotSet", "Unknown", "Enabled", "Disabled"]
            "kinectDataForExternal": "Disabled"
        }],
 
        /////////////////////////////
        // //
        // NOTES FOR CERTIFICATION //
        // //
        /////////////////////////////
 
        // String. Information that testers can use to run the app for certification.
        // 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": ""
    }
}