9

我有一个包含 2 个项目的工作区:

  1. 一个有 2 个产品的项目:一个静态库和一个资源包
  2. 一个构建 iOS 应用程序的项目。

第一个项目已添加为第二个项目下的子项目引用。我的静态库构建良好,它链接到应用程序,一切都很好。但是,我似乎无法在应用程序中包含资源包。

该捆绑包已添加到应用程序的“构建”方案中。

我尝试将 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.  

我认为这是因为捆绑包不是特定于平台的。所以我尝试添加一个构建阶段以将捆绑包复制到产品目录。导致此构建错误:

.../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 目录,而应用程序输出到 Products/Debug-iphonesimulator 目录。我必须添加一个运行脚本阶段才能将资源复制到应用程序包中:

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 回答