是否可以根据活动配置控制将哪些文件复制到捆绑包中?我不想为此添加另一个目标,所以这不是一个选项。
现实生活中的例子是一个splash视频,它实际上有8mb大小,而且很长。这个应用程序的每次启动都会显示这个令人讨厌的视频。我不想破坏太多的代码,所以解决方案是一个非常短的启动视频,这是当调试配置处于活动状态时要复制到捆绑包中的候选。
是的,我可以让调试视频变得非常小,这样它就不会伤害到发行版,但为了学习新东西,我需要一种方法来控制根据配置复制哪个文件。我认为Run脚本可以做到这一点,但也许有一个简单的解决方案,我看不到。
提前感谢!
发布于 2011-04-24 21:10:45
我没有找到比使用Run脚本更好的解决方案。最佳参考资料是Copy file to the App Resources directory if debug configuration is selected。
我用这个run脚本解决了我的问题:
RESOURCE_PATH=$SRCROOT/ResourcesCopiedByRunScript
FILENAME_IN_BUNDLE=splashVideo.mp4
BUILD_APP_DIR=${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}
if [ "$CONFIGURATION" == "Debug" ]; then
cp "$RESOURCE_PATH/shortDebugSplashVideo.mp4" "$BUILD_APP_DIR/$FILENAME_IN_BUNDLE"
else
cp "$RESOURCE_PATH/productionSplashVideo.mp4" "$BUILD_APP_DIR/$FILENAME_IN_BUNDLE"
fi发布于 2018-11-07 15:15:09
最好的方法是使用构建设置下的排除源文件名,如图所示。

发布于 2011-03-29 14:08:01
如果可以为这两个不同的文件指定相同的名称,则可以将它们放在build products文件夹中以进行适当的配置。然后将其中一个添加到项目中,并使其成为相对于构建产品的引用。
如果要将文件放在其他位置,可以将符号链接放在build products文件夹中。但是我不确定如果文件有不同的名称,但符号链接有相同的名称,它是否可以工作。
我已经在Mac项目中使用过这个技巧,我想它也适用于iOS。
编辑:这是我所做的事情的一个例子:我希望我的应用程序的调试版本链接到某个库的调试版本,我希望应用程序的发布版本链接到库的发布版本。因此,我将调试库(或指向它的符号链接)放入app build文件夹的Debug子文件夹中,并将release库放入app build文件夹的Release子文件夹中。然后,当我将库添加到项目中时,我指定引用是“相对于构建产品”。
https://stackoverflow.com/questions/5389219
复制相似问题