Charles Petzold Marketplace Deployment
Agenda The Windows Phone Marketplace Preparing for deployment –Trial versions –Application manifest and capabilities –Certification requirements –Artwork and iconography Submitting your app for certification Deploying updates
The only way to distribute apps to users – Developer account required to publish apps –100 free apps and unlimited paid apps per year The Windows Phone Marketplace
Test and debug the application –Optionally include support for trial versions –Test with manifest modified to list capabilities Use Capability Detection tool to detect capabilities Make sure app meets certification requirements Prepare the application artwork –Artwork submitted to Marketplace –Iconography in app itself Preparing for Deployment
Windows phone apps have the option of supporting trial versions ("try before you buy") – LicenseInformation.IsTrial method tells you whether app is running as a trial version –Might offer reduced functionality, or –Might expire after a specified period of time MarketplaceDetailTask.Show method takes user to your app in the Marketplace for purchase Trial Versions
Detecting Trial Versions LicenseInformation license = new LicenseInformation() if (license.IsTrial()) { // Trial version } else { // Licensed version }
Implementing "Buy Now" private MarketplaceDetailTask _task = new MarketplaceDetailTask();. LicenseInformation license = new LicenseInformation() if (license.IsTrial() && IsExpired) { // If trial period has expired, let the user buy the app _task.Show(); }
WMAppManifest.xml –Generated by Visual Studio –Embedded in application's XAP file Contains information about the app, including: –Capabilities (features and services it uses) –Title, description, version, unique ID, and more Test with modified section Microsoft modifies this section after submission Application Manifest
WMAppManifest.xml <App xmlns="" ProductID="{430ae360-8d52-40b3-a92f-93854c239a86}" Title="RssNewsDemo" RuntimeType="Silverlight" Version=" " Genre="apps.normal" Author="RssNewsDemo author" Description="Sample description" Publisher="RssNewsDemo"> ApplicationIcon.png... Background.png 0 RssNewsDemo
Application Capabilities
Command-line tool included in updates to Windows Phone Developer Tools –%Program Files%\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect\CapabilityDetection.exe Examines IL in generated assemblies and/or XAP file and determines application capabilities –Networking, location service, sensors, etc. –Outputs ID_CAPS enumerating capabilities Run tool and copy ID_CAPs to section of WMAppManifest.xml for testing Capability Detection Tool
Run CapabilityDetection.exe –Point it to phone project's bin folder Using the Capability Detection Tool
Download PDF from = Study it; learn it; know it Apps that don't meet requirements are routinely rejected Read between the lines Certification Requirements
Must run on any WP7 device of any screen size Must handle exceptions, not terminate unexpectedly, and present user-friendly error messages –"An application that displays generic or unhelpful error messages will fail certification" Display a visual progress indicator and a means to cancel during "time-consuming activities" such as "downloading data over network connections" Reliability (Section 5.1)
Must show first screen within 5 seconds of launch –First real screen, not splash screen Must be responsive to input within 20 seconds Must complete actions in response to Activated and Deactivated events within 10 seconds –Keep that tombstoning code tight! Must not hijack the Back button Must not invoke trial APIs in a tight loop Performance (Section 5.2)
Must "provide in-application settings that allow the user to enable and disable your application‟s access to and use of location from the Location Service API " Must not "hang or terminate unexpectedly when the Location Service is turned off on the phone" Location-Aware Apps (2.10 and 6.1)
Must "ask the user for explicit permission" on first use of HttpNotificationChannel.BindtoShellToast –First use, not first use each time applications runs –Use isolated storage to persist permission Must allow users to opt in to push notifications and disable them if desired –All push notifications, but toast notifications especially Must not "excessively use network capacity or bandwidth" Push Notifications (2.13 and 6.2)
Must minimize power usage while under lock –App must "stop any UI updates, active timers, and other non-critical processing" –Use Obscured and Unobscured events Must not reduce battery life to less than 120 hours –Unless app plays audio, in which case battery life must be at least 6 hours Running While Locked (Section 6.3)
Must consist of type-safe MSIL code (5.4) –Code can be obfuscated if desired Must not P/Invoke, use undocumented APIs, or contain debugging symbols (4.2) –Submit release-build XAPs only! Must allow users to opt in if app publishes personal data or location data ( and 2.11) –Requires published privacy policy, too XAP size can't exceed 225 MB (4.1.1) Additional Requirements
Required artwork –PC tile – 200 x 200 PNG –Large mobile tile – 173 x 173 PNG –Small mobile tile – 99 x 99 PNG –Screen shots – One to eight 480 x 800 PNGs Optional artwork –Background art – 1000 x 800 PNG Shown if app is featured in the Marketplace Do not use transparent pixels in these images Application Artwork
Sample Tiles and Screens PC Tile (200 x 200) Large Mobile Tile (173 x 173) Small Mobile Tile (99 x 99) Screen Shot (480 x 800)
Tiles in Action
Application icons –Background.png x 173 tile shown if app is pinned –ApplicationIcon.png - 62 x 62 icon shown in apps list –Icons can optionally use transparent pixels Allows phone accent color to shine through Bug in WP7 prevents proper display in apps list Splash screen –SplashScreenImage.jpg – 480 x 800 image shown while app loads Iconography
Sample Iconography Background.pngApplicationIcon.png Transparent pixels White pixels
Five simple steps that start at: – AppSubmission#/Page1Upload Walk-through and detailed instructions at: – app_submission_walkthrough_upload FAQ at: – windows_phone_7 The Submission Process
Provide the app's name and version number Upload the XAP (release build, max. 225 MB) Request a "technical exception" if desired Step 1: Upload Application
Enter title, category, description and other information that will appear in the Marketplace Step 2: Provide Description
Upload large and small mobile tiles, PC tile, and at least one 480 x 800 screen shot Optionally upload Marketplace background art Step 3: Upload Artwork
Price the application, specify where (in which countries) it will be sold, and indicate whether trial versions are supported Step 4: Set Pricing
Indicate whether app should be published automatically if it is approved Click to submit! Step 5: Submit
Updates work just like first submissions –Submit new version of app as if it were the first Users are notified that an update is available You are not allowed to charge for updates Data in isolated storage is preserved –Unless user uninstalls and reinstalls your app For more info, see us/library/gg442301(v=vs.92).aspx Application Updates
Charles Petzold Questions?