2

我正在编写一个具有嵌入式帮助应用程序的应用程序。我配置了 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: $!";
}

有谁知道发生了什么?我怎样才能让我的助手和它的主机保持同步?

4

1 回答 1

3

您的脚本在复制阶段之前运行,所以我认为您想要 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 的菜单中选择“ Editor ”->“ Expand Selected Transcript ”。

于 2013-05-01T17:42:08.623 回答