могу ли я использовать cygwin со скриптом bash для обновления манифеста Android при фиксации?

Я нашел эту ссылку 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» и посмотрю, работает ли это.


person Evan R.    schedule 26.10.2011    source источник


Ответы (2)


Вы можете использовать Maven (который поддерживает разработку для Android) с плагин номера сборки.

Он позволяет создавать номера сборок с помощью SCM, последовательного номера сборки или временной метки. См. страницу использования.

person Peter Knego    schedule 26.10.2011

В том же посте, который вы упомянули, я опубликовал другое решение, потому что SVN смело рекомендует не изменять содержимое фиксации с помощью хука перед фиксацией, вы можете все это испортить! Ваш манифест может навсегда сохранить один и тот же versionCode в svn, вместо этого вы должны изменить /bin/AndroidManifest.xml , то есть тот, который будет упакован в файл .apk.

person Rafael Nobre    schedule 30.11.2012