2009-05-18 10 views
1

私はIB3プラグインテンプレートを使用してカスタムコントロールとフレームワーク/ IBプラグインを作成しました。XcodeはIBプラグインをリソースフォルダに作成しません

ドキュメントによれば、プラグインはフレームワークのresourcesディレクトリに組み込まれている必要があります。私のプロジェクトをビルドするとき、プラグインはフレームワークと共に構成フォルダ(デバッグ)にあります。

これは、新しいテンプレートを作成したときと同じ状態でそのまま使用できます。私はCONFIGURATION_BUILD_DIR$(BUILD_DIR)/$(CONFIGURATION)/FrameworkName.framework/Resources/に変更しようとしましたが、変更はありませんでした。

私はまた、インストールパスを混乱させようとしましたが、どこにも行きませんでした。ビルドの設定を確認するためにいくつかのオープンソースプロジェクトを調べましたが、自分のものと同じですが、プラグインはビルドされ、期待通りにリソースディレクトリに置かれます。

答えて

1

ビルド設定を混乱させないでください。代わりに、 "ファイルのコピー"ビルドフェーズをフレームワークターゲットに追加します。コピーファイルビルドフェーズのインスペクタで、ディレクトリを "Resources"に設定します。 Xcodeの "Groups & Files"ツリーの "Products"グループからプラグイン製品をドラッグして、このビルドフェーズにプラグインを追加します。

0

ありがとう、バリー。コピーファイル作成フェーズを使用しようとしたとき、IBはフレームワークとプラグイン間の接続を解決できませんでした。何らかの理由で関連するプラグインが見つかりませんでした。

しかし、無限の手抜きをした後、私は私が思っていたよりも近くにいることがわかりました。 CONFIGURATION_BUILD_DIRを変更する:

$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FrameworkName.framework/Resources/ 

とフレームワークの検索パスを更新することは私のために問題を解決しました。これは、(少なくとも私のマシン上の)プラグインテンプレートの動作ではありませんので、うまくいけば、これは他の誰かを助けるでしょう。

0

1つのXcodeターゲットのビルドされた製品を別のXcodeターゲットの製品のresourcesディレクトリに含めるには、グループとファイルツリーで製品を見つけて、その製品を "bundle resources phases"のコピーにドラッグします。もう1つのターゲット。また、ターゲットのget情報パネルを使用して、2つのターゲット間のターゲット依存関係を追加する必要があります。

ビルド製品ディレクトリにビルドされたプラグインが表示されていても、それがフレームワークのリソースディレクトリにコピーされていないことを意味するわけではありません。 Xcodeはすべてのターゲットをビルドディレクトリに作成し、最終的なデスティネーション(この場合はフレームワークのresourcesディレクトリ)にコピーします(移動しません)。この理由の1つは、製品が複数の最終的な宛先を持つことができるということです。

関連する問題