14

試用版と有料の「プロ」バージョンの 2 つの形式で提供される Android 用のアプリケーションがあります。2 つのバージョンは Android マーケットで共存し、パッケージ名が異なります (com.app.trial と com.app.pro と呼びましょう)。それらは同じコードベースを共有しています。Eclispe でトライアル ビルドとプロ ビルドを切り替える必要がある場合、正しいバージョンをビルドするためにコードを編集するたびに 20 分以上を費やさなければなりません。私の手順は次のようになります。

  1. AndroidManifest.xml のパッケージ名を変更します (アプリの versionName と versionCode も変更します)。

  2. メイン パッケージ名「com.app.pro」をクリックし (pro が最新のビルドで、今はトライアル ビルドを作成したい場合)、[リファクタリング] -> [名前の変更] を選択し ([参照の更新] と [サブパッケージの名前の変更] をチェックします)、Eclipse に改名を行います。

  3. 私のコードでは、多くのファイルが「com.app.trial」に自動的に変更されるのではなく、「古い」パッケージ名「com.app.pro」をまだインポートしています。場合によっては、明確な理由もなく、名前の変更中に Eclipse がこれらの参照を追加します (特定の Java ファイル内からこの特定のパッケージへの参照がありません)。すべてのインスタンスを手動で編集する必要があります。

私の質問は:

この手順にかかる時間を短縮するにはどうすればよいですか? また、#ifdefs (別名 Abilities) の便利なサポートがある NetBeans も使用しています。これにより、ビルド間の切り替えが非常に簡単になります。残念ながら、Eclipse は #ifdefs をサポートしていません (少なくとも組み込みサポートはありません)。

どんな提案でも大歓迎です。

PS参考までに、Eclipse Ganymedeバージョン3.4.2を使用していますが、新しいバージョンも試しましたが、同じです。

4

1 に答える 1

22

これに対する優れた解決策は、アプリケーションを 3 つのプロジェクトに分割することです。

  • すべての共通コードを含む 1 つのライブラリ プロジェクト
    • 実際、1 つのアプリケーションの2 つのバージョン(ライト版と有料版)を作成することは、このページで説明している一般的なシナリオの 1 つです;-)
  • 試用版の 1 つのプロジェクト、
  • プロバージョン用の1つのプロジェクト。

各試用版とプロ版は次のようになります。

  • ライブラリ プロジェクトを参照する(ほとんどすべてのコードを含む)
  • 試用版またはプロ版に固有のものを定義します (マニフェスト、文字列、追加コードなど)。

これにより、試用版またはプロ版のビルドは、1 つのプロジェクトをビルドするのと同じくらい簡単です。何も変更する必要はありません。


役立つかもしれないいくつかのリンク:

于 2011-03-26T17:32:56.093 に答える