
我们有一个独特的情况,我们正在将中国的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="<namespace Prefix='androID' Uri='http://schemas.androID.com/apk/res/androID' />" query="manifest/@androID:versionCode" Value="$(SVN_REVISION)" /> <XmlPoke XmlinputPath="PropertIEs\AndroIDManifest.xml" namespaces="<namespace Prefix='androID' Uri='http://schemas.androID.com/apk/res/androID' />" 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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)