我在AppCenter中为使用Xamarin Forms制作的Android应用程序创建了一张CI CD,我正在尝试使用自定义脚本更改Manifest文件中的Version Name。我尝试了一些方法,主要来自this post from 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识别,因为我可以看到预构建徽章但是它就像没有被执行因为我的应用程序总是在1.0.0版。
如果有人做过这样的事情,我会很感激你的帮助!
你看过这里Version Name change example in script吗?还有一些其他示例如何使用预构建脚本在AndroidManifest.xml中更改值。
关于文件夹目录问题。如果您有一个Xamarin Android项目,那么我认为您需要使用
$APPCENTER_SOURCE_DIRECTORY/YourDroidProjectName/Properties/AndroidManifest.xml