# Xcode auto-versioning script for Subversion
# by Axel Andersson, modified by Daniel Jalkut to add
# "--revision HEAD" to the svn info line, which allows
# the latest revision to always be used.
#
# modified by JM Marino to change only [BUILD] motif
# into CFBundleGetInfoString key.
#
# HOW TO USE IT: just add [BUILD] motif to your Info.plist key :
# CFBundleVersion
#
# EXAMPLE: version 1.3.0 copyright 2003-2009 by JM Marino
# with [BUILD] into CFBundleVersion key
use strict;
die "$0: Must be run from Xcode" unless $ENV{"BUILT_PRODUCTS_DIR"};
# Get the current subversion revision number and use it to set the CFBundleVersion value
#my $REV = `/usr/local/bin/svnversion -n ./`;
my $REV = `/usr/bin/svnversion -n ./`;
my $INFO = "$ENV{BUILT_PRODUCTS_DIR}/$ENV{WRAPPER_NAME}/Contents/Info.plist";
my $version = $REV;
# (Match the last group of digits without optional letter M | S):
($version =~ m/(\d+)[MS]*$/) && ($version = "" . $1);
die "$0: No Subversion revision found" unless $version;
open(FH, "$INFO") or die "$0: $INFO: $!";
my $info = join("", <FH>);
close(FH);
#$info =~ s/([\t ]+<key>CFBundleVersion<\/key>\n[\t ]+<string>.+)\[BUILD\](<\/string>)/$1$version$2/;
$info =~ s/([\t ]+<key>CFBundleVersion<\/key>\n[\t ]+<string>)\[BUILD\](<\/string>)/$1$version$2/;
open(FH, ">$INFO") or die "$0: $INFO: $!";
print FH $info;
close(FH);
Хотя вышеприведенный ответ от skaffman верен, я обнаружил, что это намного больше работы, чем я ожидал!
Когда я добавил файл ivysettings.xml в проект, я затем потребовалось переопределить почти все, так как до этого значения по умолчанию работали нормально.
Итак, я узнал, как добавить новый каталог кеша во встроенную командную строку в моем сценарии NAnt ...
< exec program="java" commandline="... ... -jar ${ivy.jar} -cache ${project.cache} ... ... />
(Где $ {ivy.jar}
- это местоположение моего файла .jar и $ {project.cache}
- это новое местоположение, указанное ранее в сценарии, где я хочу использовать область кеша.)
Это означает, что мне не нужны настройки плюща .xml, и я могу вернуть все обратно к использованию распознавателей по умолчанию и т. д.
Примерно так в ivysettings.xml
:
<ivysettings>
<caches defaultCacheDir="/path/to/my/cache/dir"/>
</ivysettings>
См. Документацию на http://ant.apache.org/ivy/history/latest-milestone /settings/caches.html[12105 impression