Xamarin.Android android:versionCode android:versionName– 来自Jenkins Build Server

Xamarin.Android android:versionCode android:versionName– 来自Jenkins Build Server,第1张

概述我们有一个独特的情况,我们正在将中国的Xamarin.Android应用程序部署到33个应用程序商店.因此,我们的解决方案有33个应用程序项目,我们设置Jenkins(在Windows上运行)打包并签署我们所有的apks(否则制作构建会很疯狂).我们还需要使用Jenkins的${SVN_REVISION}值修改清单文件中的and

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

我们还需要使用Jenkins的${SVN_REVISION}值修改清单文件中的androID:versionCode和androID:versionname.有没有办法将这些值命令行传递给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.我应该做一篇关于此的博客文章.

总结

以上是内存溢出为你收集整理的Xamarin.Android android:versionCode android:versionName – 来自Jenkins Build Server全部内容,希望文章能够帮你解决Xamarin.Android android:versionCode android:versionName – 来自Jenkins Build Server所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1114718.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存