2013-04-15 9 views
9

Xcodeを使用する(iOSで開発する)最初のプロジェクトと同じであるがクラスによって異なる2つ目のプロジェクトを作成したい。Xcodeで2つのiOSアプリケーションを作成する

正確には、私はIPhoneアプリケーションを作成しています。私は無料版とプレミアム版を提供したいと思います。実際、プロジェクトのコードは同じですが、いくつかのクラスが変更されています。

問題は2つのプロジェクトをサポートしたくないということです。クラスを変更すると、他のプロジェクトの同じ変更を変更する必要があります。非常に冗長です。

さらに、プロジェクトはリモートのGITリポジトリにプッシュされます。

最後に、iOSアプリケーションはプロジェクトに関連付けられたIDを使用して識別します。

私は2つの異なるプロジェクトが必要ですか?

Xcodeで2つのiOS Appプロジェクトを作成してクラスを共有するのに最適なソリューションはどれですか?

おかげ

答えて

17

私は無料版とプレミアムバージョンを提供したいと考えています。

この場合は、次の2つのプロジェクトで2つのアプリケーションを作成する必要はありません:あなたが必要とするすべてはあなたのプレミアムバージョンのための第二ターゲットです。ここにはlink that explains how to create and manage multiple targets in Xcodeがあります。

このプロセスでは、プロジェクトにターゲットを追加し、別のプロパティplistを定義し、必要に応じて条件付きコンパイル用のプリプロセッサシンボルを設定し、そのシンボルをフリーバージョンには不要なクラスの#ifdefに使用します。

無料版とプレミアム版の2つの共通のアプローチは、1つのバージョンを無料で提供し、ユーザーがアプリ内購入を通じてプレミアムにアップグレードできるようにすることです。

6

2つのターゲットを作成するだけで済みます。だから、あなたは完璧な単一のコードベースを修正するだけです!

This tutorialはあなたを歩き回ります(例としてはLite /有料版も使用します)。有料版と名前の無料版

  • 0
    1. 複製ターゲットは、applicationDidfinishLaunchingの開始にこのコード行を入れて、支払ったターゲットにマクロ名PaidApp=1を定義します。誰かの購入はアプリの機能を支払った場合は無料アプリ実行中のターゲットは、その後、1に@「adDisabled」の値を設定し

      #ifdef PaidApp 
      [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"adDisabled"]; 
      #endif 
      
    (@「adDisabled」のデフォルト値で0になります)
    関連する問題