Export (0) Print
Expand All
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

App manifest file for Windows Phone 8

August 19, 2014

Each Windows Phone app has a manifest file that contains details about the app, such as the App ID and the capabilities that the app uses. This topic defines the elements, tags, and attributes in the app manifest file. The manifest file name is WMAppManifest.xml. The file is located in the Visual Studio Solution Explorer window, in your project Properties folder, or you can find it by using Windows Explorer.

NoteNote:

The manifest files for Windows Phone apps and XNA Framework apps are the same except for a few attribute value differences, noted in the sections that follow. When you modify the manifest file, you should make sure to keep the elements in the correct order or your app might fail to compile.

The primary purpose of the manifest file is the following:

  • When you submit your apps to the Windows Phone Store, info from the manifest file is used in the certification process, to filter your app correctly in the Store, and to deploy and run your app on the device.

  • The info from the manifest file is stored as metadata in the app database.

This topic contains the following sections.

The app manifest file is generated in Visual Studio, and in general you should not edit the file manually. For most scenarios, the manifest file should be modified by using the manifest editor tool. For more info about the manifest editor, see How to modify the app manifest file for Windows Phone 8.

One scenario in which you should use the manifest editor to modify the manifest is when you determine the capabilities used by your app. You should mark the correct capability values in the manifest file. For more info, see How to determine app capabilities for Windows Phone 8.

There are some elements, such as the Extensions section, which require you to edit the manifest file directly. For more info about how to do this, see How to modify the app manifest file for Windows Phone 8.

Some of the values in the manifest file are automatically updated after you submit your app to the Store. Examples include the Author, Publisher, and the ProductID attributes.

Caution noteCaution:

Your app could become unstable or unusable whenever the app manifest file is modified.

The following is an example of the default manifest file for a Windows Phone 8 app.

The highlighted items are elements and attributes that are new or changed in Windows Phone 8. For more info about the changes that are made to the app manifest file when you upgrade an app, see How to upgrade an app project to Windows Phone 8.

Caution noteCaution:

In the following XML samples, line breaks have been added to improve readability. If you modify the app manifest file manually, don’t add line breaks or additional whitespace.

<?xml version="1.0" encoding="utf-8"?>

<Deployment
   xmlns="http://schemas.microsoft.com/windowsphone/2012/deployment"
   AppPlatformVersion="8.0">
  <DefaultLanguage
     xmlns=""
     code="en-US"/>
  <App
     xmlns=""
     ProductID="{31a2f61a-4083-4250-9c0a-2d68740285b3}"
     Title="NewPhoneAppWP8"
     RuntimeType="Silverlight"
     Version="1.0.0.0"
     Genre="apps.normal"
     Author="NewPhoneAppWP8 author"
     Description="Sample description"
     Publisher="NewPhoneAppWP8"
     PublisherID="{73c86a8f-20c1-4e53-a01e-bfc5aee75273}">
    <IconPath
       IsRelative="true"
       IsResource="false">
         Assets\ApplicationIcon.png
    </IconPath>
    <Capabilities>
      <Capability Name="ID_CAP_NETWORKING"/>
      <Capability Name="ID_CAP_MEDIALIB_AUDIO"/>
      <Capability Name="ID_CAP_MEDIALIB_PLAYBACK"/>
      <Capability Name="ID_CAP_SENSORS"/>
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
    </Capabilities>
    <Tasks>
      <DefaultTask
         Name ="_default"
         NavigationPage="MainPage.xaml"/>
    </Tasks>
    <Tokens>
      <PrimaryToken
           TokenID="NewPhoneAppWP8Token"
           TaskName="_default">
        <TemplateFlip>
          <SmallImageURI
             IsRelative="true"
             IsResource="false">
               Assets\Tiles\FlipCycleTileSmall.png
          </SmallImageURI>
          <Count>0</Count>
          <BackgroundImageURI
             IsRelative="true"
             IsResource="false">
               Assets\Tiles\FlipCycleTileMedium.png
          </BackgroundImageURI>
          <Title>NewPhoneAppWP8</Title>
          <BackContent></BackContent>
          <BackBackgroundImageURI></BackBackgroundImageURI>
          <BackTitle></BackTitle>
          <DeviceLockImageURI></DeviceLockImageURI>
          <HasLarge></HasLarge>
        </TemplateFlip>
      </PrimaryToken>
    </Tokens>
    <ScreenResolutions>
      <ScreenResolution Name="ID_RESOLUTION_WVGA"/>
      <ScreenResolution Name="ID_RESOLUTION_WXGA"/>
      <ScreenResolution Name="ID_RESOLUTION_HD720P"/>
    </ScreenResolutions>
  </App>
</Deployment>
NoteNote:

The Capabilities list in the preceding example may not match the list in the manifest file of your app. For more info, see the "Capabilities element" section later in this topic.

The Deployment element is the root element. This provides app and localization info in the manifest file when deploying a Windows Phone app.

Attribute

Type

Definition

xmlns

String

The XML namespace. The default value is http://schemas.microsoft.com/windowsphone/2012/deployment for Windows Phone 8 and http://schemas.microsoft.com/windowsphone/2009/deployment for Windows Phone OS 7.1.

AppPlatformVersion

String

The version of the Windows Phone SDK or the runtime binaries of the platform. The default value is 8.0 for Windows Phone 8 and 7.1 for Windows Phone OS 7.1.

The DefaultLanguage and Languages elements identify the languages supported by the app. The languages that you specify in these elements are listed with your app in the Windows Phone Store.

The DefaultLanguage element is required. If you specify a language that is not supported in the Store, the app is rejected when it is submitted.

The DefaultLanguage element in the app manifest file corresponds to the Neutral Language setting that you specify in the Assembly Information dialog box on the Application page of Project Designer. Setting or changing the Neutral Language updates the value of DefaultLanguage when you close the Assembly Information dialog box. However this synchronization is only one-way, and is not enforced if you later change the value of DefaultLanguage manually.

If your app’s Neutral Language is not supported in the Store, specify another language that your app supports as the value of DefaultLanguage.

The Languages element is optional. On the Packaging page of Manifest Designer, this element is labeled Supported Languages. If you specify a language that is not currently supported in the Store, it is ignored when the app is submitted.

The Languages element in the app manifest file corresponds to the Supported Cultures list on the Application page of Project Designer.

  • Adding items to the Supported Cultures list in project properties updates the Languages list in the app manifest file when you save the project properties. However, this synch is only one-way, and is not enforced if you later change the Languages list in the app manifest file directly. Make sure that both lists contain the same items before you publish your app.

  • Removing items from the Supported Cultures list in project properties does not remove them from the Languages list in the app manifest file. Remove the same items manually from the Languages list in the app manifest file.

For more info, see Globalization and localization for Windows Phone 8.

Both the DefaultLanguage and the Languages elements have the following attributes:

Attribute

Type

Definition

xmlns

String

The XML namespace. The default value is http://schemas.microsoft.com/windowsphone/2012/deployment for Windows Phone 8 and http://schemas.microsoft.com/windowsphone/2009/deployment for Windows Phone OS 7.1.

code

String

The code for the specified language. For example, en for English, or sk-SK for Slovak (Slovakia).

The AppExtra element is an optional child of the Deployment element for apps that target Windows Phone 7.8. The AppExtra element has the following syntax.

<AppExtra xmlns="" AppPlatformVersion="8.0">
    <Extra Name="Tiles"/>
</AppExtra>

The following table defines the attributes of the App element.

Attribute

Type

Definition

xmlns

String

Blank.

AppPlatformVersion

String

Always 8.0.

Extra element

The Extra element is a child of the AppExtra element. The Extra element has one attribute, Name. The name specifies the extra feature that you want to enable for your app. The only value for Name is Tiles. For more info, see Adding Windows Phone 8 and Windows Phone 7.8 Tile functionality to Windows Phone OS 7.1 apps.

The App element is a child of the Deployment element. It supplies info such as the product ID, version, and type of app. The following table defines the attributes of the App element.

Attribute

Type

Definition

Author

String

The app author’s name.

BitsPerPixel

Integer

16 or 32 bits per pixel.

Description

String

The description of the app.

Genre

String

The default value is either Apps.Normal or Apps.Games depending on the project type.

Apps that use Apps.Normal appear in the app list on the phone. Apps that use Apps.Games appear in the Games Hub on the phone.

HasSettings

Boolean

Indicates whether the app supports settings.

HubType

Integer

Enables your app to appear in the Extras section of the Music + Videos Hub. It is used for testing before app submission, and must be manually entered in the manifest file. A value of 1 enables this functionality.

IsBeta

Boolean

Indicates whether the app is a beta app. This has consequences for the app license.

ProductID

GUID

The default value is the GUID for the project (128 bit). During the app submission process, a new product ID is inserted into the manifest file.

Publisher

String

The publisher of the app. This default value is the name of the project. This attribute is required for certain types of apps, such as push-enabled apps.

RuntimeType

String

The default value is Silverlight or Modern Native for Windows Phone 8 apps, and Silverlight or XNA for Windows Phone OS 7.1 apps, depending on the project type.

SingleInstanceHost

Boolean

Indicates whether the app has a single instance host.

Title

String

The title of the app that appears in the app list or Games Hub. The default value is the name of the project.

Version

Version String

The default value is 1.0.0.0.

xmlns

String

You can leave this value blank.

The IconPath element is a child of the App element. It provides the location of the app icon that is visible in the app list. On devices with Windows Phone 8 Update 3, the app icon is also displayed in the task switcher. The attributes are for internal use only.

The default image for apps is ApplicationIcon.png. The default image for XNA Framework games is PhoneGameThumb.png.

The Capabilities element is a child of the App element. Windows Phone provides a capabilities-driven security model where a user must opt-in to certain functionality within the app. Some examples include using network-based services where a user could incur additional roaming charges if the use of the services was not disclosed in the app, or the use of push notifications that can also produce roaming charges. The primary goals of this capability model are to:

  • Ensure proper disclosure – Users must be notified if an app’s functionality poses security risks. They must opt-in to allow the functionality to be activated.

  • Decrease the attack surface – Capabilities are used to create a security chamber in which the app executes. This chamber is created once at install time and used from then on for the app.

When you are developing your app, you can successfully deploy and run your app in Windows Phone Emulator without specifying the correct capabilities, but you must specify the correct capabilities when you deploy the app to a phone. If you do not use a capability when needed, the app throws a UnauthorizedAccessException exception. It displays an Access denied message when you attempt to use the functionality in the app, and exits unexpectedly if the exception is not handled. You can determine what capabilities your app uses by using the Windows Phone Store Test Kit, and mark the capabilities that your app uses by using the manifest editor. For more info see, How to determine app capabilities for Windows Phone 8 and How to modify the app manifest file for Windows Phone 8.

Capability element

The Capability element is a child of the Capabilities element. The Capability element has one attribute, name. The name specifies the capability you want to enable for your app. For more info about the capability values you can specify for the name property, see App capabilities and hardware requirements for Windows Phone 8.

The Tasks element is a child of the App element. This element is for internal use only.

DefaultTask element

The DefaultTask element is defined by Visual Studio during development.

Attribute

Type

Description

Name

String

The name of the task. The default value is _default.

NavigationPage

String

The page in the app that a task navigates to when it starts.

ImagePath

String ending in an .exe suffix

The name of the app’s executable file.

Optional.

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

ImageParams

String

Image parameters.

Optional.

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

BackgroundExecution

String

The only valid value is Location Tracking.

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

ExtendedTasks element

The ExtendedTasks element is a child of the Tasks element and contains BackgroundServiceAgent elements. This element defines the use of multiple tasks by an app. Extended tasks are named by the developer. Currently, you can use the ExtendedTasks element only to define background tasks.

Attribute

Type

Description

Name

String

The name of the task.

NavigationPage

String

The page in the app that a task navigates to when it starts.

BackgroundServiceAgent element

The BackgroundServiceAgent element is a child of the ExtendedTasks element and contains the details of a background service agent used by the app.

Attribute

Type

Description

Name

String

The name of the assembly.

Source

String

The assembly source file.

Specifier

String

AudioPlayerAgent, AudioStreamingAgent, or ScheduledTaskAgent.

Type

String

The full class name of the entry point in the assembly.

The Tokens element is a child of the App element. Each app has a Tile that the user can pin to the Start screen. The following sections provide the names and describe the elements and attributes for Tiles in the manifest file. For more info, see Tiles for Windows Phone 8.

PrimaryToken element

The PrimaryToken element is a child of the Tokens element. It describes the Tile that is associated with an app.

Attribute

Type

Description

TokenID

String

The name of the Tile. The default value is the project name.

Caution noteCaution:
If you change the TokenID of your primary token, it should not match the TokenID of any of your secondary Tiles. In that scenario, users may not be able to install updates to the app.

TaskName

String

The name of the task that the Tile invokes when the user taps it. The default value is _default.

TemplateType5 element

Applies to: Windows Phone OS 7.1

The TemplateType5 element is a child of the PrimaryToken element. It is the default template that controls app Tiles for Windows Phone OS 7.1. The following table describes the child elements of the TemplateType5 element.

Element

Type

Description

BackgroundImageURI

String

The name of the local or remote resource that contains the background image of the Tile.

Count

Integer

A Tile can contain a counter that displays a value between 0 and 99. If the value is 0, the counter does not appear on the Tile.

Title

String

The title that appears on the Tile. The default value is the name of the project.

TemplateFlip element

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

The TemplateFlip element is a child of the PrimaryToken element. It is the default template that controls app Tiles for Windows Phone 8. The following table describes the child elements of the TemplateFlip element. For more info about the Flip Tile, see Flip Tile template for Windows Phone 8.

Element

Type

Description

SmallImageURI

String

The name and path for the local or remote resource that contains the background image of the Tile.

Count

Integer

A value between 0 and 99, which is displayed on the Tile. If the value is 0, the counter does not appear on the Tile.

BackgroundImageURI

String

The name and path for the local or remote resource that contains the background image for the Tile.

Title

String

The title that appears on the Tile. The default value is the name of the project.

BackContent

String

The text displayed on the back of the Tile, above the title.

BackBackgroundImageURI

String

The name and path for the local or remote resource that contains the background image for the back of the Tile.

BackTitle

String

The title that appears on the back of the Tile.

LargeBackgroundImageURI

String

The name and path for the local or remote resource that contains the background image for a large Tile.

LargeBackContent

String

The text displayed on the back of a large Tile, above the title.

LargeBackBackgroundImageURI

String

The name and path for the local or remote resource that contains the background image for the back of a large Tile.

DeviceLockImageURI

String

The name and path for the local or remote resource that contains the lock image for the app.

HasLarge

True or False.

A value that indicates whether the app supports large Tiles. No value indicates large Tiles are not supported.

The Extensions element is a child of the App element and immediately follows the Tokens element. This element is used to specify the extensions that your app supports. For more info, see Search extensibility for Windows Phone 8. For more info about editing this section, see How to modify the app manifest file for Windows Phone 8.

Important noteImportant Note:

The order of elements in the Extensions element is important. All Extension elements should be listed first, followed by all FileTypeAssociation elements, followed by all Protocol elements.

Extension element

All Extension elements should be listed first under the Extensions element. Each Extension element describes an App Connect extension.

Attribute

Type

Description

ConsumerID

GUID

Restricts access to the extension to the consumer with the specified ProductID. All search extensions require the same value, 5B04B775-356B-4AA0-AAF8-6491FFEA5661.

ExtensionName

String

Identifier for the type of extension support.

ExtraFile

String

Specifies the location of the Extras.xml file. The file must reside in a folder named Extensions and be named Extras.xml.

TaskID

String

Routes the invocation to the specified TaskID. If this attribute is not specified, invocation is routed to the default task.

FileTypeAssociation element

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

The FileTypeAssociation element is a child of the Extensions element and should always follow the Extension element. The FileTypeAssociation element describes file associations between your app and certain file types. This entry enables you to associate your app with some types of files, and give the user the option of starting your app to view those file types. You can register a maximum of 20 file associations. For more info, see Auto-launching apps using file and URI associations for Windows Phone 8.

Attribute

Type

Description

Name

String

A friendly name for the file association.

NavUriFragment

String

Always set to fileToken=%s.

TaskID

String

Always set to _default.

Protocol element

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

The Protocol element is a child of the Extensions element, and Protocol elements should always follow all FileTypeAssociation elements. The Protocol element describes URI scheme names that your app is registered for, enabling it to launch when another app launches a special URI. For more info, see Auto-launching apps using file and URI associations for Windows Phone 8.

Attribute

Type

Description

Name

String

The prefix in your custom URI scheme. A string between 2 and 39 characters in length that contains numbers, lowercase letters, periods ('.'), or hyphens ('-'). Do not include the colon (':') or anything else that will follow the prefix in the URI.

NavUriFragment

String

Always set to encodedLaunchUri=%s.

TaskID

String

Always set to _default.

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

The ScreenResolutions element is a child of the App element. This element is used to specify the resolutions that your app supports. For more info, see Multi-resolution apps for Windows Phone 8.

ScreenResolution element

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

The ScreenResolution element is a child of the ScreenResolutions element and specifies a resolution supported by the app.

Attribute

Type

Description

Name

String

The screen resolutions supported by the Windows Phone 8 app. These include ID_RESOLUTION_WVGA, ID_RESOLUTION_WXGA, and ID_RESOLUTION_HD720P.

The Requirements element is a child of the App element, and should immediately follow the ScreenResolutions element for Windows Phone 8, and the Capabilities element for Windows Phone OS 7.1. Beginning in Windows Phone SDK 7.1.1 Update, use this element to indicate if the app requires certain hardware. For example, if the app will not run on a lower-memory device, you should specify it in this section. The primary goal of this element is to block users from purchasing or installing apps that will not run on their phone. A Requirements element is not required in your manifest file if the app can run on all Windows Phones and it has no other special hardware requirements.

Requirement element

The Requirement element is a child of the Requirements element. The Requirement element has one attribute, name, which accepts a string value. You can mark the hardware requirements for your app using the manifest editor. For more info see, How to modify the app manifest file for Windows Phone 8. For more info about the values you can specify for the Requirement name value, see App capabilities and hardware requirements for Windows Phone 8.

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

The FunctionalRequirements element is an optional child of the App element and should immediately follow the Requirements section in the manifest file. Use the FunctionalRequirements element to indicate if the app requires certain hardware functionality, such as the increased memory limit. For example, if the app will not run on a lower-memory device, you should specify it in this section.

FunctionalRequirement element

The FunctionalRequirement element is a child of the FunctionalRequirements element. The FunctionalRequirement element has one attribute, name, which accepts a string value. For more info about the values you can specify for the FunctionalRequirement name value, see App capabilities and hardware requirements for Windows Phone 8.

Show:
© 2014 Microsoft