【问题标题】:AppCenter bash script to change the Version Name in Android Manifest fileAppCenter bash 脚本更改 Android 清单文件中的版本名称
【发布时间】:2019-07-13 08:53:39
【问题描述】:

我在 AppCenter 中为使用 Xamarin Forms 制作的 Android 应用程序创建了一张 CI CD,我正在尝试使用自定义脚本更改清单文件中的版本名称。 我尝试了一些方法,主要来自this post from Montemagno,但没有成功。

我在脚本中看到了这个BUILD_REPOSITORY_LOCALPATHAPPCENTER_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


【解决方案1】:

你看过这里Version Name change example in script 吗?还有一些其他示例如何使用预构建脚本更改 AndroidManifest.xml 中的值。

关于您的文件夹目录问题。如果您有 Xamarin Android 项目,那么我假设您需要使用

$APPCENTER_SOURCE_DIRECTORY/YourDroidProjectName/Properties/AndroidManifest.xml

【讨论】:

    猜你喜欢
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 2020-01-07
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 2014-07-29
    相关资源
    最近更新 更多