使用Xcode 4子项目中的静态库和捆绑产品

bri*_*dge 9 bundle static-libraries subproject xcode4

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

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

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

该捆绑包已添加到应用程序的"构建"方案中.

我已经尝试将Resources.bundle拖入应用程序的"复制构建资源"阶段,但这会在构建时导致此错误:

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle: No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以我查看了派生数据目录,我看到了Resources.bundle

MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug 
Run Code Online (Sandbox Code Playgroud)

MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator.  
Run Code Online (Sandbox Code Playgroud)

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

.../DerivedData/MyProject-eyuldesiktlginanzifvzcfrtmgl/Build/Products/Debug-iphonesimulator/Resources.bundle depends on itself.  This target might include its own product.
Run Code Online (Sandbox Code Playgroud)

但是没有Debug-iphonesimulator/Resources.bundle文件,因此我没有看到这种依赖性来自何处.任何建议将不胜感激.

bri*_*dge 7

我想到了.问题是(如上所述)bundle不是特定于平台的,所以当app输出到Products/Debug-iphonesimulator目录时,它输出到Products/Debug目录.我不得不添加一个Run Script阶段来将资源复制到app bundle中:

SRC="$BUILD_DIR/$CONFIGURATION/Resources.bundle"
DEST="$BUILD_DIR/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME/$FULL_PRODUCT_NAME"
cp -R "$SRC" "$DEST"
Run Code Online (Sandbox Code Playgroud)