Я создал CI CD в AppCenter для своего приложения для Android, созданного с помощью форм Xamarin, и пытаюсь изменить имя версии в файле манифеста с помощью специального сценария.Я попробовал некоторые подходы, в основном из этого поста из Montemagno , но безуспешно.
Я видел использование этих BUILD_REPOSITORY_LOCALPATH
и APPCENTER_SOURCE_DIRECTORY
переменных в скрипте, пробовал оба ине работает.
Мой файл манифеста находится по этому пути: src/Dashview.Mobile/Dashview.Mobile.Android/Properties/AndroidManifest.xml
, и мой скрипт выглядит так:
#!/usr/bin/env bash
# Updating Manifest
MANIFEST="$APPCENTER_SOURCE_DIRECTORY/src/Dashview.Mobile/Dashview.Mobile.Android/Properties/AndroidManifest.xml"
VERSIONNAME=`grep versionName ${MANIFEST} | sed 's/.*versionName\s*=\s*\"\([^\"]*\)\".*/\1/g'`
sed -i.bak "s/android:versionName="\"${VERSIONNAME}\""/android:versionName="\"1.0.${APPCENTER_BUILD_ID}\""/" ${MANIFEST}
rm -f ${MANIFEST}.bak
# Print out file for reference
cat $MANIFEST
echo
Этот скрипт находится вявляется корнем проекта Xamarin.Android и является предварительной сборкой с именем appcenter-pre-build.sh
В сгенерированном журнале я не вижу, что манифест был изменен с помощью команды cat, онAppCenter узнает, потому что я вижу значок Pre-build, но это не похоже на выполнение, потому что мое приложение всегда в версии 1.0.0.
Если кто-то сделал что-то подобное, я буду признателенпомощь!