10

私の有料アプリはWP7マーケットプレイスで公開されています。次に、アプリの無料バージョンを作成したいと思います。

IsFreeVersion = true;私は定数を持っていて、それに基づいていくつかの機能を無効にするだろうと思います。

このために私のプロジェクトを設定するための最良のアプローチは何でしょうか?私は間違いなく2つのバージョンのコードを持ちたくありません。では、新しいプロジェクトを作成してファイルをリンクする必要がありますか?

また、さまざまなアプリケーションアイコンをどのように処理しますか?最後に、アプリケーションIDに個別のGUIDが必要ではないでしょうか。

4

4 に答える 4

17

「試用版」バージョンを使用せずに、同じプロジェクトでアプリの無料バージョンと有料バージョンを使用したい場合は、次のようにします。

各プロジェクトには、インストール時にアプリを他のアプリと区別する単一のProductIDが割り当てられます。2番目のプロジェクトを作成し、最初のプロジェクトのすべてのファイルにリンクすることもできますが、プロジェクトの成長に合わせてメンテナンスが必要になります。私のソリューションでは、ビルド構成を使用して、ビルドする無料または有料のアプリを選択できます。

まず、アプリのバージョンごとに個別のProductIDが必要です。このProductIDは、マニフェストファイル「Properties/WMAAppManifest.xml」で宣言されています。したがって、最初のステップは、WMAAppManifest.xmlの2つのバージョンを作成することです。私はそれらをWMAAppManifestPaid.xmlおよびWMAAppManifestFree.xmlと呼んでいます。

これらのマニフェストファイルのそれぞれで、ProductIDに個別のGUIDを提供し、無料バージョンのタイトルを変更して、インストール時に区別できるようにします。

次に、プロジェクトに2つの新しいビルド構成を追加する必要があります。私はそれらをReleaseFreeとDebugFreeと呼んでいます。

次に、いくつかのビルド前イベントをすべてのビルド構成に追加して、適切なマニフェストファイルをコピーします。

if $(ConfigurationName)== Release copy $(ProjectDir)\ Properties \ WMAppManifestPaid.xml $(ProjectDir)\ Properties \ WMAppManifest.xml if $(ConfigurationName)== Debug copy $(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などの条件付きコンパイルシンボルを2つの無料ビルド構成に追加する必要があります。

次に、コンパイラ指令を使用して、次のようなコードを変更できます。

#if FREE_VERSION
    s = "My App Free";
#else
    s = "My App Paid";
#endif
于 2012-01-29T23:44:29.030 に答える
5

無料版と有料版で別々のアプリが必要な場合(おそらく無料アプリの機能を制限したり、広告を追加したりしている場合)、別のプロジェクトを作成してから、他の既存のファイルにリンクします(「名前を付けて追加」を使用)リンク")。

その後、必要に応じてさまざまなバージョンをカスタマイズできます。このようなことをするとき、私は部分的なメソッド(およびクラス)を使用して、さまざまなバージョンを拡張およびカスタマイズするのが好きです。
また、アプリ固有のコンパイラ指令を使用して、機能を特定のバージョンに制限することもできます。

于 2011-06-21T19:47:41.387 に答える
4

Trial APIは、このような状況を処理するように設計されています。trueかどうかを確認できIsTrialます。その場合、機能をすべて1つのコードベースで制限できます。Freeアプリがマーケットプレイスのセクションに表示されるようにするために、これを回避したと思います。この場合、新しいアプリとして送信する必要があります。つまり、新しいGUIDを送信する必要があります。

AFAIK(誰かが別の方法を持っているかもしれません)、あなたは新しいプロジェクトを作成し、別のビルドを実行する必要があります。ほとんどの場合、既存のコードベースを含めることができますが、を含めないと2つのバージョンになりTrial APIます。これは新しいプロジェクトなので、タイルアイコンを好きなように変更できます。

于 2011-06-21T18:32:02.097 に答える
1

Jeff Brandは、さまざまなタイプのトライアル管理を実装できる非常に優れたTrialManagerライブラリも用意しています。

次のようなシナリオ:

  • N回使用すると期限切れになります
  • T分間使用すると期限切れになります
  • ..。

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

于 2011-06-21T19:25:12.030 に答える