你能否在XCode中将来自不同项目的构建产品添加为捆绑资源?

8

我在Xcode工作区中有两个项目。我想将项目B的构建产品作为项目A中的bundle资源添加进去。我已经配置了项目A的方案,使其先构建项目B。除了从文件系统中简单地添加项目B的构建产品外,是否有适当的方法来实现这一点?

4个回答

4
我能够通过以下方式将B项目的产品添加到A项目中。我只需将B项目的产品从项目导航器拖到A项目的“复制捆绑资源”面板中即可。这可能有些棘手,因为您不能通过选择产品图标来启动拖动 - 我成功的方法是拖动其标题。不需要将B项目设置为A目标的目标依赖项; 可以通过方案管理构建依赖关系(这是我最初配置工作区的方式)。

3

这个相同的问题在这里有些得到了答案: https://dev59.com/OWw15IYBdhLWcg3wVKF1#7118177。虽然这并不是一个完美的解决方案,但它对我来说是有效的。你可以添加一个'运行脚本'的构建阶段将资源包复制到应用程序二进制文件中。以下是脚本:

cp -R -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/

0

应该使用 cp -R -L -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/ 命令,并加上 -L 参数。如果不加这个参数,在打包时只会复制符号链接到内容文件夹路径,导致应用程序崩溃,因为无法看到真正的资源。


0

您可以前往项目A的构建阶段选项卡,并将项目B的产品添加到“复制捆绑资源”构建阶段中。请确保为项目B添加依赖关系。


1
很遗憾,项目B的产品不会显示为目标依赖项选项(它不是项目A的目标,只是共享工作区),也无法添加为捆绑资源。谢谢...正在尝试弄清楚是否可以将另一个项目的产品添加为捆绑资源。 - ctpenrose
如果您将项目B拖到项目A中,您可以选择项目B的目标作为依赖项和资源。 - Fabian Kreiser
这让我更接近目标了,谢谢。这使我能够将项目B添加为目标依赖项。不幸的是,当我尝试将捆绑资源添加到项目A时,项目B的产品仍然没有出现作为选项。 - ctpenrose
看一下这个项目会有所帮助。这里有一个关于子项目的教程:http://www.cocoanetics.com/2011/12/sub-projects-in-xcode/ - Fabian Kreiser
另一个带答案的问题:https://dev59.com/h2855IYBdhLWcg3wp2J0 - Fabian Kreiser
你已经帮我走了这么远,直到我得出了最后的答案 :) - ctpenrose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接