2011-01-19 28 views
2

私はCocoaアプリケーションターゲットとシェルツールターゲットを持つXCodeプロジェクトを持っています。これらのプロジェクトは、コアデータの永続ストアを共有しています。したがって、両方のプロジェクトで同じ* .momファイルを使用したいと考えています。XCode:同じバンドル内の複数のターゲット

これを可能にし、展開を簡略化するために、ターミナルアプリケーションをCocoaアプリケーションバンドル内に配置し、両方の実行可能ファイルにバンドル内から同じ* .momファイルにアクセスさせます。

端末アプリがCocoaアプリバンドルの中に配置され、端末アプリがこの共有* .momのパスを取得するためにCocoaアプリのメインバンドルをロードするように、XCodeプロジェクトを設定することはできますか?

+0

私はちょうどココアのアプリケーションが最初の実行時に共有リソースをアプリケーションサポートディレクトリにコピーして、代わりにそこから参照するという行を下ろすかもしれないと思います。シェルツールの実行ファイルは、最初に/ usr/local/binのような場所にコピーすることができます。したがって、Cocoaアプリケーションは基本的にリソースやその他の実行可能ファイル自体を展開します。 –

答えて

4

あなたは何をしたいことができるはずです。

1)Cocoaターゲットは、Cocoaターゲット、Get Info、Generalタブをクリックし、Direct Dependenciesペインの下にある "+"をクリックし、ターミナルターゲットを選択します。

2) "Copy Files"ビルドフェーズをCocoaターゲットに追加します。ターゲットを右クリックし、追加 - >新規ビルドフェーズ - >新規コピーファイルビルドフェーズを選択します。コピー先を選択できる情報ウィンドウが表示されます。私は、 "リソース"、デフォルトをお勧めします。

3)ターミナルアプリケーションビルド製品(プロジェクトナビゲーションペインの[製品]フォルダ)を、作成したファイルのコピービルドフェーズにドラッグします。これにより、ビルド時に、デフォルトで.momファイルが存在するCocoaアプリケーションのリソースフォルダにターミナルアプリがコピーされます。

4)あなたのCocoaコードでは、ターミナルアプリケーションの名前と拡張子を持つリソースへのパスをメインバンドルに照会することによって、ターミナルアプリケーションへのパスまたはURLを見つけることができます。あなたのターミナルアプリケーションは、同じディレクトリ内の.momファイルを見つけるために起動されたディレクトリを発見する必要があります。

希望すると便利です。

+0

ああ、私は単に端末アプリケーションを決定するそのパスを使用します。ビルド製品をアプリケーションバンドルに追加する詳細な手順をおねがいします! –

+0

まず、MacOSフォルダにコンソールアプリケーションを追加しました。実行可能ファイルを起動しますが、メインアプリケーションのGUIを表示します。私はそれをリソースに移したとき、それは黙って開始しました。すばらしいです。 –

関連する問題