我正在编写一个具有嵌入式帮助程序应用程序的应用程序。我配置了 Xcode 行为,以便每次构建应用程序时两个应用程序的捆绑版本都会增加。问题是,我发现除非我每次都清理构建文件夹,否则我的应用程序的版本 N
会获取帮助程序的版本 N - 1
。这不仅仅是版本号不匹配,帮助应用程序的二进制文件不包含我刚刚所做的更改。
我的基本设置如下:
为了尝试以更有针对性的方式模拟清理构建文件夹,我编写了一个微小的 Perl 脚本,该脚本在添加帮助程序的复制文件阶段之前的运行脚本阶段运行,但没有效果:
use strict;
use warnings;
use File::Path qw(remove_tree);
my $dir = "$ENV{TARGET_BUILD_DIR}/$ENV{WRAPPER_NAME}/Contents/Helpers";
if(-e $dir) {
remove_tree $dir or die "Can't rmtree $dir: $!";
}
有人知道这是怎么回事吗?我怎样才能让我的助手和它的主机保持同步?
最佳答案
您的脚本在复制阶段之前运行,因此我认为您需要 BUILD_DIR 而不是 TARGET_BUILD_DIR。
BUILD_DIR = /Users/gdunham/Library/Developer/Xcode/DerivedData/DC_Wire_Sizer-csvpfesmgmorlhendyncafecwzam/Build/Products
TARGET_BUILD_DIR = /Users/gdunham/Library/Developer/Xcode/DerivedData/DC_Wire_Sizer-csvpfesmgmorlhendyncafecwzam/Build/Products/Debug-iphonesimulator
提示:我通常会在运行脚本构建阶段检查“在构建日志中显示环境变量”。您还可以从脚本中进行打印并通过展开构建阶段记录来查看输出。在日志导航器中选择您的运行脚本,然后在 Xcode 菜单中选择“编辑器”->“展开选定的转录本”。
关于xcode - 复制文件阶段正在获取最后构建的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16317882/