Я нашел эту ссылку https://stackoverflow.com/questions/6579697/android-how-to-make-the-versioncode-update-automatically-with-every-build, который содержит следующий код:
#!/usr/bin/env bash
MANIFEST="AndroidManifest.xml"
if [ -f $MANIFEST ]
then
LINE=$(grep -o ${MANIFEST} -e 'android:versionCode="[0-9]*"');
declare -a LINE;
LINE=(`echo $LINE | tr "\"" " "`);
VERSION=(${LINE[1]});
INCREMENTED=$(($VERSION+1))
sed "s/android:versionCode=\"[0-9]*\"/android:versionCode=\"${INCREMENTED}\"/" $MANIFEST > $MANIFEST.tmp && mv $MANIFEST.tmp $MANIFEST
git add $MANIFEST
echo "Updated android:versionCode to ${INCREMENTED} in ${MANIFEST}";
fi
Однако я использую TortoiseSVN с сервером Windows SVN (VisualSVN), поэтому мне интересно, можно ли это как-то поместить в команду cygwin, чтобы перехватчики предварительной фиксации в svn могли это запустить? Я мало использовал cygwin, но ищу способ обновлять имя моей версии каждый раз, когда создается коммит.
Редактировать: на самом деле похоже, что вы можете использовать вызов инструмента FARThttp://fart-it.sourceforge.net/ для поиска и замены текста, поэтому я могу написать пакетный скрипт в предварительной фиксации SVN для поиска и замены текста.
Изменить № 2: FART будет сложнее, я попробую использовать первый скрипт, но заменю «git add» на «svn add» и посмотрю, работает ли это.