我在Xcode工作区中有两个项目。我想将项目B的构建产品作为项目A中的bundle资源添加进去。我已经配置了项目A的方案,使其先构建项目B。除了从文件系统中简单地添加项目B的构建产品外,是否有适当的方法来实现这一点?
这个相同的问题在这里有些得到了答案: https://dev59.com/OWw15IYBdhLWcg3wVKF1#7118177。虽然这并不是一个完美的解决方案,但它对我来说是有效的。你可以添加一个'运行脚本'的构建阶段将资源包复制到应用程序二进制文件中。以下是脚本:
cp -R -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
应该使用 cp -R -L -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
命令,并加上 -L
参数。如果不加这个参数,在打包时只会复制符号链接到内容文件夹路径,导致应用程序崩溃,因为无法看到真正的资源。
您可以前往项目A的构建阶段选项卡,并将项目B的产品添加到“复制捆绑资源”构建阶段中。请确保为项目B添加依赖关系。