私はちょうど私の最初のアプリをリリースしているし、同様に無料のバージョンを持っていると思います。私は完全なバージョンからの変更をマージするのが簡単なように私はどのように私の無料版ブランチ(svnの)を管理する必要がありますか?マニフェストファイル内のパッケージ名を変更するだけですか?またはパッケージ名はコードが異なる必要がありますか?もしそうなら、私はどのように変更を簡単にマージできますか?無料版の管理方法は?
おかげで、ジェイソン
私はちょうど私の最初のアプリをリリースしているし、同様に無料のバージョンを持っていると思います。私は完全なバージョンからの変更をマージするのが簡単なように私はどのように私の無料版ブランチ(svnの)を管理する必要がありますか?マニフェストファイル内のパッケージ名を変更するだけですか?またはパッケージ名はコードが異なる必要がありますか?もしそうなら、私はどのように変更を簡単にマージできますか?無料版の管理方法は?
おかげで、ジェイソン
Android Library Projectはあなたの友人です。
あなたは本当に無料版を作成するための別のブランチを維持したいですか?
私は同じコードベースを使用して、#ifdef
または設定パラメータのいずれかで、無料版の一部の機能を無効にします。
私はすべてのアプリケーションでこれを使用します。
public static final boolean LITE_VERSION = true;
その後、いくつかの機能を無効にするためにそれを使用します。
LITE_VERSIONがtrueに設定されている場合、Javaコンパイラはif(!LITE_VERSION)ブロック内のコードを無視するので、リバースエンジニアリングすることはできません(javap -c "コマンド)。
ビルドにはAntを使用します。私は以前にhow I build two versions of the same appを文書化しました。私が異なるマニフェストに対処する方法を議論する最後のセクションはおそらくあなたにとって最も興味深いものです。
私は家に明日帰るとき面白そうに見えるでしょう、この方法はクレチン機能を無効にすることができますか? – Jason
クレチンの機能は? :)私は各バージョンごとに異なるマニフェストファイルを使用します。また、3つのソースツリー(メイン、デモ、共通)を設定し、Antを使用して3つのツリーの2つ(メイン+コモンまたはデモ+コモン)をビルドする前に1つのツリーにマージします。 –
私は同じコードベースとパッケージ名を使用して、余分なApp(apk)またはシリアル番号だけのプレミアムキーを提供しようとしています。このアプローチは、アップグレードしたいユーザーが古いデータと設定を使用できるという肯定的な副作用があります。キーは単に機能を動的に有効にする前に言及のようなフラグを有効にします
これはおそらく最高のsoulutionのおかげです。 – Jason