2011-10-22 21 views
7

AppStoreで一連のアプリケーションを起動する予定です。彼らはいくつかの種類の異なるジャーナルのために、XMLを介してサーバーからダウンロードされたさまざまなコンテンツを表示します。したがって、これらのアプリケーションはから正確にになります(これは普遍的なアプリケーションなので、iPhone/iPadの両方で動作します)。iOSの複数のプロジェクト間でコードを共有する最良の方法

私の最初のアイデアは、アプリケーションをアップロードするために、アプリケーションを特定のジャーナルとして反応させる画像、ロゴ、構成(plist)を変更するだけでした。圧縮されたファイルはAppStoreにアップロードされます。

しかし、これは失敗と間違いを助長する恐ろしい方法となりました。画像を変更するのを忘れた場合、コンパイルされたファイルでは表示されないので(含まれているので)、画像は店に保存されます(アプリケーションを変更するには4〜5日必要です)。

私はプロジェクトを可能な限り独立した状態に保ちながら、より良いアプローチを模索しようとしています。私はコードベース全体を共有することができます:ビュー、クラスとペン先とすべてのジャーナルごとに異なるプロジェクトを作成します。

これを達成する最も良い方法はどれですか?どのような構造を私は論理(コントローラ、クラス)とUIの両方をグループ化し、さまざまなプロジェクトでそれを使用するだろうか?

私が説明したことを願っています。

いつもありがとうございました。

答えて

6

一般的なコードのほとんどをライブラリプロジェクトとして保存する必要があります。各最終プロジェクトはこのプロジェクトとリンクし、これらの資産を共通コードに言及するコードとともに画像/資産を提供する必要があります。私の仕事では、共通のライブラリも作成しています。これは、私の雇用主の2つの製品/アプリで使用されています。

+0

ありがとうAditya :)。ライブラリプロジェクトのビューとそのコントローラに含めることはできますか?できるだけ多くのコードをlibに含めたいと思います。 – IoChaos

+0

はい、ライブラリプロジェクトにビューとコントローラを含めることができます。 –

+0

すべての質問は目標を達成する良い方法ですが、これは最適です。 – IoChaos

-2

gitリポジトリを使用している場合は、必要なアプリケーションごとにブランチするだけで、すべての相違点を把握できます。また、作業中のものを切り替える必要がある場合は、そのブランチをチェックアウトする必要があります。これは、それぞれの実際のコード間のわずかな違いだけで、まったく同じ構造を可能にします。

+0

その後、コードの変更をすべてのアプリケーションのブランチにマージすることを常に覚えなければなりません。 –

0

複数のアプリケーションを作成する単一のXcodeプロジェクトを作成できます。あなたは、各アプリケーションごとに異なるバンドル識別子を持つ別々のInfo.plistを作成する必要があります。

+0

おかげでRob、非常に面白いです。私はこの方法について何も知らなかった。とにかく、将来のアプリケーションの数はかなり伸びる可能性がありますので、おそらくこの場合には最良の方法ではありません。 – IoChaos

4

Xcodeプロジェクトは複数のターゲットを持つことができますが、すべてのターゲットはコードを共有しますが、各ターゲットは同じプロジェクトディレクトリ/フォルダ内の異なるサブディレクトリ/フォルダから独自のリソース(アイコン、画像、テキスト、plistsなど) 。次に、ソース管理リポジトリに全体またはソースだけをチェックすることができます。

また、店舗にアップロードする前に、デバイス上のコードネゴシエーション以外の投稿と全く同じ方法で作成した各アプリをテストする必要があります。

+0

おかげでhotpaw2。なぜなら、私は画像を変更したときに問題が始まっていて、他の画像がAppStore(XCodeの何らかの種類のキャッシュ)で終了したのか、それともすべてをクリアしなかったのかわからないからですターゲット...おそらく私はより多くの独立性が必要です... – IoChaos

+0

あなたが不自由な人であれば、あなたのシステムから(バックアップを作成した後に)望まない他のイメージをすべて完全に削除してください。その後、バージョン番号をバンプしてクリーンなビルドを行い、提出する前にデバイス上でアプリを完全にテストします。 – hotpaw2

関連する問題