2011-07-13 22 views
7

誰かがiPhoneプロジェクトの依存関係を管理するための信頼性の高い一般化されたソリューションを見つけることに成功しましたか?私は自分のiPhoneアプリケーションを再利用可能なコンポーネントに分けて、それらを必要とするプロジェクトに引き込もうとしています。私はMaven風のワークフローを探していますが、Xcode/iPhoneプロジェクトを探しています。私は、アプリケーションの構築および署名を自動化するiPhoneアプリケーションのためのMavenプラグインを作成しましたが、私は戦っているように、私は常に感じるiPhoneプロジェクトの依存関係管理

  1. :私はそのような限り多くのことを試してみましたこれを動作させるためにはMavenに対して、それはかなり面倒です。他のオプションがない限り、私はむしろこれを使いません。

  2. 私も使用を直すアップコードをパッケージ化する静的ライブラリを使用して試してみましたが、これに伴う問題は、私はまた私のプロジェクトで再利用可能なXIBsや画像を含めたいということであり、これらの中に含めることはできません再配布のための静的ライブラリ。彼らはコードにはぴったりですが、さまざまな種類の依存関係の異なる依存関係管理システムではなく、すべてを実行する1つのシステムを用意したいと思います。

  3. 現時点では、バージョン管理システムを使用して私の依存関係を解決することに決めました。この場合私はSVNの外部を使用してプロジェクトをチェックアウトするときに依存関係をワークスペースに読み込みます。

誰でも私ができることについて考えていますか?

更新

私は今、このタスクを実行するためにCocoaPodsを使用しています。

答えて

3

を配布する短い依存関係を配布するために見つけた最も簡単な方法です:共有コードのための

  • 静的ライブラリ
  • 画像/データファイルは/ etcのためのバンドル(非コード)

これにより、あなたは今まであなたの静的ライブラリ/バンドルではなく、それらを使用するアプリケーションを管理し、プロジェクトの更新を心配する必要があります。

バンドルを作成する上で重要なことは、新しいターゲットをプロジェクトに追加するときにバンドルがiOSの下に表示されないことです。代わりに、Mac OS Xの下にリストされています。心配する必要はありません。

あなたのバンドルと静的ライブラリのターゲットを作成したら、あなたはあなたのアプリケーションにそれらを取得する必要があります:

  • は、リンク・バイナリーとライブラリ(Xcodeの4)
  • 追加の下で静的ライブラリを追加します。コピーバンドルリソース(Xcode 4)のバンドル

最新のバンドルからリソースをロードする場合は、ロードする場合は次のようにする必要がありますイメージ:

UIImage * myImage = [UIImage imageNamed:@ "YourBundle.bundle/MyImage.png"];

+1

このソリューションはまだ動作しています(最新のXcode 4.3.3を使用)?私はバンドルを追加する方法を見つけることができなかった。 – lyxera

0

スタティックライブラリを使用すると、XIBの/ Images/Stringsを簡単にインポートできるバンドルフォルダに配布できます。それは次のように私は過去にそれをやった方法がある私は、実際のコード/ Xcodeのプロジェクト

+0

これらの作成と検索を自動化する良い方法はありますか? – xoebus

+0

最良の方法は、既存のターゲットを変更して、すべてのリソースを自分が選択したフォルダにコピーするためのスクリプト実行フェーズを追加することです。フォルダ名の末尾に.bundleを追加すると、バンドルファイルに変換されます。 "Bundle"ファイルは.bundle拡張子を持つ通常のフォルダです。静的ライブラリと一緒に画像やその他の資産を配布するために、これまで本当にうまくいっています。 –

+0

恐ろしい!私は遠ざかり、これを試して実装し、これを受け入れます。これらのバンドルを簡単にインポートして配布する方法はありますか? – xoebus