gpt4 book ai didi

android - Xamarin.Android 安卓 :versionCode android:versionName - From Jenkins Build Server

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:42 25 4
gpt4 key购买 nike

我们有一个独特的情况,我们正在将 Xamarin.Android 应用部署到中国的 33 个应用商店。因此,我们的解决方案有 33 个应用程序项目,我们设置 Jenkins(在 Windows 上运行)来打包和签署我们所有的 apk(否则进行构建会很疯狂)。

我们还需要修改 list 文件中的 android:versionCodeandroid:versionName,使用 ${SVN_REVISION} 值 Jenkins 。有没有办法将这些值命令行传递给 MSBuild?

通常我们会手动编辑这个值,但由于应用项目太多,这是不可能的。

我们的构建参数现在在 Jenkins 中看起来像这样:

/p:Configuration=Release;AndroidKeyStore=True;AndroidSigningKeyStore=ourkeystore.keystore;AndroidSigningStorePass=ourpassword;AndroidSigningKeyAlias=ouralias;AndroidSigningKeyPass=ourpassword /t:SignAndroidPackage 

最佳答案

将此添加到 *.csproj 文件的末尾,在结尾 </Project> 之前标签:

  <Target Name="BeforeBuild" Condition=" '$(JENKINS)' == '1' ">
<XmlPoke XmlInputPath="Properties\AndroidManifest.xml" Namespaces="&lt;Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' /&gt;" Query="manifest/@android:versionCode" Value="$(SVN_REVISION)" />
<XmlPoke XmlInputPath="Properties\AndroidManifest.xml" Namespaces="&lt;Namespace Prefix='android' Uri='http://schemas.android.com/apk/res/android' /&gt;" Query="manifest/@android:versionName" Value="2.0.$(SVN_REVISION)" />
</Target>

我已将 Jenkins 配置为传递 JENKINS=1 和 SVN_REVISION。在构建时,它会修改 AndroidManifest.xml构建之前。

我不知道这是否适用于 Mac 上的 xbuild,取决于是否 XmlPoke实现。我应该就此写一篇博文。

关于android - Xamarin.Android 安卓 :versionCode android:versionName - From Jenkins Build Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com