Управление бесплатной версией моего приложения - PullRequest
10 голосов
/ 21 июня 2011

Мое платное приложение было опубликовано на торговой площадке WP7. Теперь я хотел бы создать бесплатную версию приложения.

Я полагаю, что у меня будет постоянная IsFreeVersion = true;, а затем на основе этого отключить некоторые функции

Каков наилучший подход к настройке моего проекта для этого? Я определенно не хочу иметь две версии кода. Так я должен создать новый проект и связать файлы?

Кроме того, как мне обращаться с различными значками приложений? Наконец, мне не нужен отдельный GUID для идентификатора моего приложения?

Ответы [ 4 ]

17 голосов
/ 30 января 2012

Если вы хотите иметь бесплатную и платную версию своего приложения в одном проекте без использования «пробной» версии, я делаю это следующим образом:

Каждому проекту присваивается один ProductID, который различаетприложение из других приложений во время установки.Вы можете создать второй проект и связать все файлы в первом проекте, но это потребует обслуживания по мере роста проекта.Мое решение позволяет использовать конфигурацию сборки, чтобы выбрать бесплатное или платное приложение для сборки.

Сначала вам потребуется отдельный ProductID для каждой версии приложения.Этот ProductID объявлен в файле манифеста 'Properties / WMAAppManifest.xml'.Поэтому первым шагом является создание двух версий WMAAppManifest.xml.Я называю их WMAAppManifestPaid.xml и WMAAppManifestFree.xml.

. В каждом из этих файлов манифеста укажите отдельный идентификатор GUID для ProductID, а также измените название бесплатной версии, чтобы вы могли отличить их, когда они установлены..

Далее нам нужно добавить две новые конфигурации сборки в проект.Я называю их ReleaseFree и DebugFree.

Затем вы добавляете несколько событий предварительной сборки во все конфигурации сборки, чтобы скопировать соответствующий файл манифеста:

if $ (ConfigurationName) == Release copy $(ProjectDir) \ Properties \ WMAppManifestPaid.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml if $ (ConfigurationName) == Отладочная копия $ (ProjectDir) \ Properties \ WMAppManifestPaid.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml if $(ConfigurationName) == ReleaseFree copy $ (ProjectDir) \ Properties \ WMAppManifestFree.xml $ (ProjectDir) \ Properties \ WMAppManifest.xml if $ (ConfigurationName) == DebugFree copy $ (ProjectDir) \ Properties \ WMAppManifestFree.xml $ (ProjectDir)\ Properties \ WMAppManifest.xml

Теперь вы сможете создавать бесплатные или платные версии приложения, просто изменив конфигурацию сборки.

Далее, чтобы реально сделать бесплатноеверсия, отличная от платной, например ограничение функций, отображение разных страниц и т. д., необходимо добавить условнуюСимвол компиляции, например FREE_VERSION для двух бесплатных конфигураций сборки.

тогда вы можете просто использовать директивы компилятора для изменения кода, такого как:

#if FREE_VERSION
    s = "My App Free";
#else
    s = "My App Paid";
#endif
5 голосов
/ 21 июня 2011

Если вам нужны отдельные приложения для бесплатной и платной версий (предположительно, вы ограничиваете функциональность бесплатного приложения или добавляете рекламу), я бы создал отдельный проект, а затем дал бы ссылку на существующие файлы другого (используйте«Добавить как ссылку»).

Затем можно настроить различные версии по мере необходимости.При выполнении подобных вещей мне нравится использовать частичные методы (и классы) для расширения и настройки различных версий.
Возможно, вы также захотите использовать директивы компилятора для конкретного приложения, чтобы ограничить функциональность конкретной версией.

4 голосов
/ 21 июня 2011

Trial API разработан для решения такой ситуации. Вы можете проверить, истинно ли IsTrial, и в этом случае вы можете ограничить функциональность в одной кодовой базе. Я предполагаю, что вы избежали этого, чтобы ваше приложение появилось в разделе Free на торговой площадке. В этом случае вам придется отправить его как новое приложение, что означает новый GUID.

AFAIK (может, у кого-то есть другой метод), вам придется создать новый проект и запустить отдельную сборку. Вы можете включить существующую кодовую базу по большей части, но у вас получится две версии, если вы не включите Trial API. Так как это новый проект, вы можете изменить значки плитки на что угодно.

1 голос
/ 21 июня 2011

Джефф Брэнд также подготовил очень хорошую библиотеку TrialManager, которая позволяет вам реализовывать различные типы управления пробными версиями.

Сценарии, такие как:

  • Истекает после N числа использования
  • Истекает через T минут использования
  • ...

http://www.slickthought.net/post/2010/08/30/Managing-Trial-Applications-for-Windows-Phone-7.aspx

...