App deployment options for Windows Phone
This article provides an overview of all the current options for deploying a Windows Phone app to a device.
Development unlocked device
The most useful deployment option during development is to unlocking (developer-unlock) your own device. This enables you to directly deploy and debug your Apps from Visual Studio. It also enables you to deploy unencrypted XAP files (e.g. created using using the Windows Phone App Studio Beta) to the device using the Application Deployment tool.
Deployment and development for Windows Phone 8 devices is only possible using the Windows Phone 8 SDK. This SDK requires Windows 8 Pro to be installed, due to the dependence on Hyper-V for the Windows Phone 8 Emulator. For Deployment to Windows Phone 7 devices you can use either the Windows Phone 7 or the Windows Phone 8 SDK. The adventurous natures might want to try this Hack from XDA-developers to get the Windows Phone 8 SDK installed on Windows 7.
Deployment to a single device
Since early August 2013, anyone can unlock a single device and deploy up to 2 apps at once to it (you will have to delete those apps before you can deploy another one). The procedure for unlocking a device is described in How to register your phone for development (MSDN).
Deployment to multiple devices
If you want to deploy more apps (up to 10) or need to unlock multiple devices for development (up to 3) you will need a Dev Center subscription.
There are several ways of getting such an account:
- Direct Registration in DevCenter costs $19, you can join here
- Registration through the Nokia Lumia Premium Developer program costs $99 but also includes additional benefits
- Registration through Microsoft's DreamSpark program is free for anyone currently enrolled in a school/university that is participating in the the DreamSpark program.
Development private beta
If you have a DevCenter account (see above) you can deploy your app beta through the Windows Phone Store. Private beta allows you to enable up to 1000 devices (based on their Microsoft Account IDs) to download and test the App for 90 days. You will have to provide those users with a direct link which allows them to download the app from the Store on their device. The app won't show up in Store searches.
App functionality that is tied to the Store can only be tested using a private Beta and not using direct deployment using developer-unlock. One of those are In-App-Purchases (for more information on IAP see Increase your revenue with In-App Purchase on Windows Phone 8).
Information on how to submit your app for a private Beta can be found in this MSDN article.
Public deployment (Store)
All consumer deployments have to go through the Windows Phone Store. A submission for inclusion into the store requires a DevCenter subscription. After passing through certification by Microsoft, users can download and install the apps in one of three ways:
- Direct Download from the Store on the device itself (arguably the most common way)
- Using the Download Link on the Windows Phone Web Store (which sends a request to the device to download and install the App)
- Downloading the XAP from the Web Store and deployment via an SD card (Windows Phone 8 devices only)
While the first two options are self explanatory the third requires a more in depth description. It works only on devices with a SD card slot. You put the downloaded (encrypted) XAP file onto the SD card's root folder. It may take up to 10 minutes for the Store application on the phone to detect the presence of the file. It will then display an information in the Store App that an App can be installed from the SD card. Payment/Licensing is processed by the Store on the device and will therefore require an active Internet connection on the device.
Deployment using the SD card can be beneficial if an App takes more space during the installation process than is available on the device's internal storage (apps regularly take 3 times of their install size during installation but only around 2 times when installing from the SD card).
Company Deployment (Windows Phone 8 devices only)
Company deployment enables companies to distribute internally developed apps without the need for developer-unlock (which might be a security concern) and without going through Microsoft's Store infrastructure. You will still need a company account in Dev Center. In addition you also need a Enterprise Mobile Code Signing Certificate from Symantec. A complete overview on the process can be found in this MSDN article.