3

App Store で私の iPhone アプリの 2 つの異なるバージョンを提供したいと考えています。1 つはアプリケーションで表示されるアイテムの数によって制限される無料のもので、もう 1 つは完全に無制限のものです。

両方のアプリのソース コードはまったく同じです。唯一の違いは、アイテムをアプリに格納する SQLite データベースです。

アプリの両方のバージョンで、異なるバンドル名と異なるアイコンが必要になることを理解しています。データベース、アイコン、nib 文字列などのいくつかをカスタマイズできるように、ソース コード ディレクトリを完全にコピーしないようにする方法を見つけようとしています。

すべてを複製せずにこれを行う良い方法はありますか?

4

6 に答える 6

13

プロジェクトに2番目のターゲットを作成するだけです。1つは、完全なデータベースを含むフル機能のアプリケーションにすることができ、新しいターゲットは、デモデータベースを使用したデモビルドになります。これはCrosswordsで行い、正常に機能します。そうすれば、すべてのソースを1つの場所に保持でき、同期が外れる心配はありません。

于 2008-11-08T15:09:05.833 に答える
7

条件付きコンパイルを適切に使用してください。どの言語で作業しているかはわかりませんが、C/C++ では条件付きコンパイルはマクロ プリプロセッサと ifdefs を使用して行われます。次のようなコードを記述します。

#ifdef FULL_APP
  // unlimited size
  #define SIZE -1
#else
  #define SIZE 100
#endif

プログラムをビルドするときは、コンパイラ コマンド ラインで適切なマクロ定義を指定します。

gcc program.cc -o program.o -DFULL_APP

条件付きコンパイルとマクロ プリプロセッサをさまざまな方法で使用して、実行可能ファイルのさまざまな機能をオンまたはオフにしたり、プログラムの他の側面を変更したりできます。

于 2008-11-08T17:22:50.117 に答える
1

また、ユーザーがフル バージョンにアップグレードすることを決定した場合、既存のデータを転送するための何らかのメカニズムが整っていないと、ユーザーから否定的な反応が見られる可能性が高いことにも注意してください。データの内容が小さく、ほとんどがテキストで表現できる場合は、それを渡すための URL スキームを実装することをお勧めします。

于 2008-11-08T16:41:18.330 に答える
0

アプリの両方のバージョンに異なるSQLiteデータベースが必要な特定の(iPhone固有の?)理由はありますか?

そうでない場合は、交換可能なキーを使用してライセンスメカニズムを実装し、1つのファイルを変更するだけで単一のコードベースをコンパイルできます。実行時に、アプリはそのファイルをチェックし、ストレージの削減または無制限を許可します。追加の利点(iPhoneストアがそのようなものをサポートしている場合)は、データを失うことなくフルバージョンのロックを解除するのが非常に簡単である必要があることです。

もちろん、そのようなソリューションは、顧客が技術に精通していて悪意があり、コードを逆コンパイルするのが簡単な場合、ビジネスに害を及ぼす可能性があります。

于 2008-11-08T14:58:47.227 に答える
0

新しいプロジェクトを作成し、元のプロジェクトと同じソース ファイルを参照します (ローカル コピーは作成しません)。

于 2008-11-08T14:44:41.653 に答える
-2

私はこれを調査しましたが、「試用版をダウンロードして Web からアップグレードする」ことは、App Store の条件に違反しているようです。ストアには、アプリの 2 つの別々のバージョンが本当に必要になるようです。(Ben Gottlieb のエントリを参照)。したがって、1 つのソース、2 つのディストリビューションです。

于 2008-11-10T20:40:34.943 に答える