【发布时间】:2019-07-13 08:53:39
【问题描述】:
我在 AppCenter 中为使用 Xamarin Forms 制作的 Android 应用程序创建了一张 CI CD,我正在尝试使用自定义脚本更改清单文件中的版本名称。 我尝试了一些方法,主要来自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 识别,因为我可以看到 Pre-build 徽章,但它就像没有被执行,因为我的应用程序总是在1.0.0版本。
如果有人做过类似的事情,我将不胜感激!
【问题讨论】:
-
你有没有得到这个工作?我遇到了同样的问题,App Center 显示 Pre-Build 脚本标记,但我没有看到任何输出到日志的回显行,而且我的版本号没有改变。
-
@Filosopher 我的问题是因为 bash 脚本是在 Windows 中创建的,我需要在 Mac 机器上创建它(如果我没记错的话,因为换行符)
标签: android xamarin.forms xamarin.android visual-studio-app-center