Bash-скрипт AppCenter для изменения имени версии в файле манифеста Android - PullRequest
0 голосов
/ 19 февраля 2019

Я создал 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.

Если кто-то сделал что-то подобное, я буду признателенпомощь!

1 Ответ

0 голосов
/ 30 апреля 2019

Вы смотрели здесь Пример изменения имени версии в скрипте ?Есть также несколько других примеров того, как изменить значения в AndroidManifest.xml с помощью сценариев перед сборкой.

Относительно проблемы каталога вашей папки.Если у вас есть проект Xamarin для Android, то я предполагаю, что вам нужно использовать

$APPCENTER_SOURCE_DIRECTORY/YourDroidProjectName/Properties/AndroidManifest.xml
...