9

2 つのプロジェクトを含むワークスペースがあります。

  1. 静的ライブラリとリソース バンドルの 2 つの製品を持つプロジェクト
  2. iOS アプリをビルドするプロジェクト。

最初のプロジェクトは、2 番目のプロジェクトの下のサブプロジェクト参照として追加されました。私は静的ライブラリをうまく構築しています。それはアプリにリンクしています。すべて順調です。ただし、アプリにリソース バンドルを含めることができないようです。

バンドルがアプリの「ビルド」スキームに追加されました。

Resources.bundle をアプリの「ビルド リソースのコピー」フェーズにドラッグしようとしましたが、ビルド時に次のエラーが発生します。

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle: No such file or directory

そこで、派生データ ディレクトリを調べたところ、Resources.bundle が含まれています。

MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug 

いいえ

MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator.  

これは、バンドルがプラットフォーム固有ではないためだと思います。そこで、ビルド フェーズを追加して、バンドルを Products ディレクトリにコピーしようとしました。このビルドエラーが発生します:

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle depends on itself.  This target might include its own product.

しかし、Debug-iphonesimulator/Resources.bundle ファイルがないため、この依存関係がどこから来ているのかわかりません。アドバイスをいただければ幸いです。

4

1 に答える 1

7

私はそれを考え出した。問題は (前述のように) バンドルがプラットフォーム固有ではないため、アプリが Products/Debug-iphonesimulator ディレクトリに出力するのに対し、Products/Debug ディレクトリに出力することです。リソースをアプリ バンドルにコピーするには、Run Script フェーズを追加する必要がありました。

SRC="$BUILD_DIR/$CONFIGURATION/Resources.bundle"
DEST="$BUILD_DIR/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME/$FULL_PRODUCT_NAME"
cp -R "$SRC" "$DEST"
于 2011-12-07T15:32:03.630 に答える