1

Android 開発には Eclipse + Subversion を使用しています。以前は、広告付きのアプリの無料バージョンを作成し、広告なしで別の有料バージョンを作成していたので、Subversion の 2 つの別々のブランチにそれらを保管していました。

私が見つけた問題は、これらは Google Play と他の市場向けの 2 つの異なるアプリであるため、異なるパッケージ名を持たなければならないということです。だから私は、例えば:

com.package.game com.package.gamefree

無料版のゲームにいくつかの変更を加えて、subversion を使用して有料ブランチにマージしたい場合、無料ゲームのソース ファイルは com/package/gamefree の下にあり、有料版は com/ の下にあるため、問題が発生しました。パッケージ/ゲーム

ソースファイルごとにソースファイルの差分を作成して「手動」マージを実行することになりましたが、別のディレクトリに追加されたファイルと削除されたファイルも確認する必要があります。時間の無駄。

では、あるブランチの com/package/game が他のブランチの com/package/gamefree と「同じ」ディレクトリであることを Subversion に知らせる方法はありますか?

事前にどうもありがとう、

4

2 に答える 2

1

私はここで推測していますがtrunkcom.package.gamefreeパッケージに無料のアプリを入れることができるかもしれません.

ブランチでは、トランクで開発されたものを依存ライブラリとしてインポートしcom.package.game、ライセンスのものを追加して、パッケージ化されたランチャー クラスでラップすることができます...

この方法では、コードを 1 回変更するだけで、2 つのアプリをビルドできます。

于 2012-07-09T18:31:15.410 に答える
0

少し深くグーグルで調べたところ、より良い可能性は2つだけであることがわかりました。

  • ビルド時に無料バージョンと有料バージョンの切り替えを自動化する ANT を任意の方法で使用します。
  • 2 つのバージョン間で共有される Android ライブラリ プロジェクトの使用。

私は、ANT を使用しているほとんどの人が、別のオプションがないためにしばらく前に ANT を使用していたことを見てきました。Androidの開発ドキュメントでも、次のように述べています。

http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

無料版と有料版の両方が存在するアプリケーションを作成している場合。両方のバージョンに共通するアプリケーションの部分をライブラリ プロジェクトに移動します。パッケージ名が異なる 2 つの依存プロジェクトは、ライブラリ プロジェクトを参照し、2 つのアプリケーション バージョンの違いのみを提供します。

私は ANT を使用したことがなく、ライブラリ オプションを指定すると、それを学習する理由がないため、これは私にとっても最良の方法のようです。

だから私はそのようにしました:私のプロジェクトは現在MyGameCoreに分割されています。これはMyGameFreeとMyGamePayプロジェクトの両方に共通のすべてのファイルを含むライブラリプロジェクトであり、Google Playがそれらを認識できるように異なるメインパッケージ名を持つために必要な最小限のクラスしかありません。さまざまなアプリケーションに加えて、Google ドキュメントによるとライブラリに移動できない未加工のアセット フォルダーがあります。いずれにせよ、これらはバイナリ ファイルであり、変更されたときにあるバージョンから別のバージョンにコピーするだけで、それほど頻繁ではありません。

したがって、これ以降、ほとんどの場合、MyGameCore プロジェクトで作業する必要があり、行った変更は、ブランチをマージする必要なく、MyGameFree プロジェクトと MyGamePay プロジェクトの両方にすぐに影響します。

これにより、多くの時間を節約でき、最初のコード行から以降のプロジェクトで使用します。

于 2012-07-19T10:01:45.320 に答える