2012-02-22 15 views
4

スクリプトを使用してXcodeターゲットにファイルを追加する方法はありますか?スクリプトを使用してXcodeターゲットにファイルを追加する

ここでは、ルールやフェーズの作成については言及していません。私はそれらについて知っている。私は100以上のターゲットに約3500ファイルをインポートする必要があるプロジェクトがあります。私は、ファイルがいくつかのディレクトリに広がっていて、手動でそれらをすべて選択するには何日もかかりますので、これを手で行うのではなく、むしろそうしたいと思います。

ソースコードはもともと私がXcodeに変換しているメークファイルベースのプロジェクトに由来していました。 makefileを簡単に解凍して、perlの魔法を使って$(SRCROOT)に関連する関連ディレクトリのファイルリストを簡単に作成することができます。私が知らないことは、それらのリストをどうするかです。

Xcode内のファイルを見つけたら(ファイル参照とフォルダグループとして既にプロジェクトに追加されているため)、リストを読み込んだり、Xcode内のファイルを見つけたり、私が定義できる単一のターゲットです。これを行うことができれば、すべてのターゲットのソースをインポートして設定する作業全体が、数日ではなく数時間かかることになります。

何とか実現できますか?

事前に感謝します。 -KT

答えて

3

あなたはあなたのために仕事をしています。最後の回避策として、おそらく

...

私は、ファイルを追加した後、同じプロジェクト間の差分を見たとき、それはテキストで幸い project.pbxprojを変更します。

ファイルが適切にコピーされている可能性がある場合は、 このファイルを解析して編集して、再構築することができます。トリッキーなYES、サポートされていない可能性があります。私はダン・ライトA brief look at the Xcode project format によって、このファイルにいくつかの追加情報を見つけた

More on the Xcode project format

アプローチの成功はあなたのファイルのためのPBXFileReference(複数可)を取得することができることに依存しますようです。

幸運

よろしく

JimZ

0

ターゲットに位相を構築する 'を実行するスクリプト' を追加します。

スクリプトの実行ビルドフェーズには、スクリプトを入力できるテキストボックスがあります。ここのスクリプトは、Xcodeビルド変数にアクセスできます。

ここにスクリプト全体を入れることができますが、私は通常それがルビースクリプトを呼び出させることを好みます。ここで

をコピーリソースいくつかのサンプルスクリプトは、アプリケーションバンドルの中にある:

echo SRCROOT is ${SRCROOT} 
echo so project root is ${SRCROOT}/.. 
echo and it contains ... 
ls ${SRCROOT}/.. 
echo Will copy resources to ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app 
ruby ${SOMEPROJECT}/buildscripts/copy_resources.rb ${SRCROOT}/.. ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app 
関連する問題