65

iPhone アプリの軽量バージョンの構築を検討したいところまで来ています。プロセスについて少し説明しているウェブ上のいくつかのことを見つけました。

http://developer.apple.com/tools/XCode/XCodeprojects.html

http://www.pacificspirit.com/blog/2009/01/27/building_for_multiple_iphone_targets_in_xcode

私が特に関心を持っているのは、アプリのさまざまなバージョンに含まれるファイルを管理するプロセスを簡素化することです。これは、有料バージョンを継続的に変更および強化するためです。

4

6 に答える 6

83

元の回答は、アプリの購入で前日からです。現在の正解は、単一のバイナリを出荷し、アプリ内アップグレードを通じて有料バージョンを提供することです。コードが少し増えますが、1回の出荷であり、コンバージョン率はおそらく向上します.

ただし、アプリのバージョンを変更したい場合:

Xcode は、複数のターゲットを適切にサポートしています。

プロジェクト メニューから [新しいターゲット...] を選択します。別の iPhone 実行可能ファイル (Cocoa Touch アプリケーション) を追加すると、ターゲットに含まれるアイテムをリソースごとに指定できます。これには、有料版への特定のコードのコンパイルのみが含まれる場合があります。

[グループとファイル] リスト ヘッダー (上部の左側) を右クリックし、[ターゲット メンバーシップ] を有効にすると、現在のターゲットに含まれているものと含まれていないものに関する視覚的なフィードバックをすばやく取得できます。

シミュレータまたは iPhone のビルドを切り替えるのと同じ方法で、異なるターゲットのビルドを切り替えます。

ビルド時に特定のクラスがどのように動作するかを指定するには、2 つのことを実行できます。それぞれのターゲット用にビルドされた 2 つのバージョンのクラスを含めるか、プリプロセッサのビルド時フラグを設定できます。「グループとファイル」リストでターゲットを選択し、そのターゲットの「情報を取得」します。ビルド タブに移動し、「前処理」を検索します。「プリプロセッサ マクロ」というアイテムがLITEライト ターゲットに追加され、同様PAIDに有料ターゲットにも追加されます。

ソースファイルでは、コンパイル時にどのバージョンを使用するためにコンパイルしているかを判断できます#ifdef LITE

さらに、#ifdef LITE に基づいてグローバル フラグまたは AppDelegate メンバー変数を設定し、Lite アプリと有料アプリの実行時の動作を変更することもできます。でも、そこに価値があるかどうかはわかりません。

于 2009-02-14T18:59:59.173 に答える
24

開発者として、あなたは可能な限り少ないコードを書きたいと思っています(バグが少なく、時間が少ない)。ビルドバージョンが異なるため、より多くの作業と個別のテストに投資する必要があります。

高価なハッカーツールを作成しているのでない限り、違いをできるだけ単純に保つことを検討するかもしれません-いくつかの隠された設定や設定を持っているだけです。このように、チェックとテストの大部分は両方のビルドで同じ作業を行い、コードはほとんど異なりません。重要な懸念は、開発者として自分自身に負担をかけないことです。

ビルドが異なる理由は、Freeが「有料」バージョンにハッキングされないようにするためです。このような単純な制限を回避しようとする人々は、主に、電話を脱獄する人々のサブセットです。あなたが何をしても、彼らが感謝を示すためだけにそれを買うので彼らがとても驚いている以外の条件の下であなたは彼らのお金を得ることができません。

于 2009-02-14T21:30:27.003 に答える
7

「フラワー ガーデン」の作成者は、ここでライト バージョンを作成するためのさまざまなアプローチの長所と短所を詳しく説明しています。

http://gamesfromwithin.com/from-full-to-lite-in-under-an-hour

于 2009-02-18T00:09:26.710 に答える
2

iPhone 3.0 では、代わりにアプリ内購入を使用して、複数のアプリを作成することなくすべての機能のロックを解除できるようにします。また、これにより人々が無料でこれを入手するのを避けることができると思いますが、それについてはよくわかりません.

于 2009-11-13T22:28:15.860 に答える
1

私はgitブランチを使用しました。メインアプリを分岐し、いくつかの調整を行って一連のコンテンツを無効にしました。現在、私は主に master ブランチで作業しており、主要な開発が発生したときに lite に切り替えて最新のものにマージしています。非常にうまく機能します。

于 2009-02-14T19:38:44.883 に答える
0

より良い方法は、プロジェクトを 1 つだけにして、複数のターゲット (アプリのバージョンごとに 1 つ) を使用することです。ターゲットとは:複数のターゲット

于 2015-06-03T09:56:29.387 に答える