2010-12-08 18 views
1

私はプロジェクトを持っています。これは働いていて既にアプリストアに提出されている製品を作ります。今、私は新しいプロジェクトを作りたいですそれはプロジェクトBと呼んで、私はBをAに基づいています。明らかに、BはAの上にUIと動作を追加します。既存のプロジェクトに基づいて新しいプロジェクトを作成する(プロジェクトの再利用)

いくつかの調査を行った後、唯一のオプションはプロジェクト間参照を使用しているようです。プロジェクトBのプロジェクトAのXIBや画像などを再利用したいのですが、プロジェクト間の参照がそのシナリオでうまくいくと仮定して正しいですか?

この問題を解決するには、いくつかの重大な問題があります。プロジェクトレベルの再利用を実現したい。 Javaや.NETではこれは考慮されませんでした。技術によって可能になりました。 iPhoneはフレームワークをサポートしていないので、開発者はコードの重複のようなより初期のアプローチに向かっていると思う。

どうすればこの問題に取り組むことができますか。プロジェクトA(XIB、画像など)に基づいて自分のプロジェクトBを作成するにはどうすればよいですか?私はコピー&ペースト全体のアプリをして、私が個別に仕事ができる二つの別々のアプリを持っていた

おかげで、

答えて

1

もしAとBが非常に似ているのであれば、単に新しいビルドターゲットを作成することも考えられます。これは、ターゲットAとターゲットBを持つ単一のプロジェクトを提供します。両方のターゲットは、プロジェクト内のいずれかのリソースにアクセスできます。

共有コードがかなりある場合は、静的ライブラリを作成できます。 iOSはユーザ生成ライブラリへの動的リンクをサポートしていませんが、スタティックリンクをサポートしています。これは、プロジェクトAからプロジェクトBの参照ライブラリAを取得してそれを依存関係として構築することができるため、プロジェクト間の依存関係を有効にします。世論に反して

+0

iOSは確かにダイナミックリンクをサポートしています!あなたは言い直すべきです。 –

+0

アダムに感謝します。静的ライブラリの主な問題は、XIBなどのリソースを共有できないことです。 – Ushox

+0

@Shaggy Frog:申し訳ありませんが、iOSはダイナミックリンクをサポートしていますが、システム提供のライブラリにのみ対応しています。私は、再利用の目的でユーザが作成したライブラリとリンクするという文脈で話していました。一定。 –

0

は、私は1つの点でこれと同じことをしました。

+0

しかし、プロジェクトAをプロジェクトBにコピー&ペーストするのは、ライフサイクルが異なるため、コピー&ペーストしたくありません。共通コードにバグがある場合、私は両方のプロジェクトでそれを修正したくありません。 – Ushox

+0

@Ushox:ああ、良い点。 – Linuxmint

0

は、それはたぶん、あなたは、SCMのGitのやピストンなどのツール(http://piston.rubyforge.org)と「クローン」コードを使用することができますcreate iOS frameworks.

+1

はい、ただし、プライベートフレームワークを使用しているアプリは拒否されます。 –

+0

私はその声明の真実性を確信していません。リンク? –

+0

実行時に非システムライブラリに動的にリンクすることはできません。プライベートフレームワークは動的ライブラリを使用します。 Ergo、プライベートフレームワークにリンクするビルドを提出することはできません。 –

0

することが可能です。その後

#add original project to git 
cd /your/base/project/code 
git init 
git add . #Stages all files to check-in index 
git commit -m 'Your commit message here' 

#clone the original project into a new one 
cd /your/new/project/directory 
git clone /your/base/project/code 
git checkout -b aNewWorkingBranchName #create a new working branch to modify 
#modify code to your <3's content, use git pull/push/merge/rebase/diff as required to track/update original project 

これはあなたが必要なときに変更をプルできるようにしながら、独立して「新規」プロジェクトを開発させてください:ような何かを行います。 Pitonでは、GitリポジトリとSubversionリポジトリの両方に対してブランチングを行い、新しいコードを特定のリモートリビジョンに結びつけることができます。そのドキュメントを見てください。

+0

ありがとう!私はそのオプションを見ていきます。 – Ushox

関連する問題