如何使用ant从build.xml中的manifest.xml读取版本代码

发布于 2025-01-05 23:15:49 字数 136 浏览 0 评论 0原文

我想将我的 apk 从 myapp-release.apk 重命名为 myapp-1.0.30.apk。我想在 build.xml 中执行此操作。我想读取清单中的版本,然后重命名该 apk。 我正在使用 ant 来完成此操作。

谢谢, 斯内哈

I want to rename my apk from myapp-release.apk to myapp-1.0.30.apk. I want to do this in build.xml. I want to read the version in my manifest and then rename the apk.
I am doin this using ant.

thanks,
sneha

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

趁年轻赶紧闹 2025-01-12 23:15:49

我找到了我自己问题的答案:

<path id="android.antlibs">
            <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
</path>
<taskdef name="xpath" classname="com.android.ant.XPathTask" classpathref="android.antlibs" />
<xpath input="./AndroidManifest.xml" expression="/manifest/@android:versionName" output="manifest.versionName" />
<echo message="versionName = ${manifest.versionName}" />

I found the answer to my own question:

<path id="android.antlibs">
            <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
</path>
<taskdef name="xpath" classname="com.android.ant.XPathTask" classpathref="android.antlibs" />
<xpath input="./AndroidManifest.xml" expression="/manifest/@android:versionName" output="manifest.versionName" />
<echo message="versionName = ${manifest.versionName}" />
各自安好 2025-01-12 23:15:49

只需使用 https://stackoverflow.com/a/5318044/130683 中的 Macrodef 并根据您的需求进行调整,意味着类似于:

<macrodef name="mfgrep">
  <attribute name="jar"/>
  <attribute name="key"/>
  <attribute name="keysave"/>
    <sequential>
      <loadproperties>
        <zipentry zipfile="@{jar}" name="META-INF/MANIFEST.MF"/>
      </loadproperties>
      <echo>@{key} => ${@{key}}</echo>
      <property name="@{keysave}" value="${@{key}}"/>
    </sequential>
</macrodef> 

 <!-- Grep a key from Manifest -->
 <mfgrep 
   jar="/home/gilreb/temp/test.jar"
   key="Specification-Version"
   keysave="foobar"
 />

之后使用属性 ${foobar} 重命名您的文件:

<move file="myapp-release.apk" tofile="myapp-${foobar}.apk"/>

Just use the macrodef from https://stackoverflow.com/a/5318044/130683 and adapt it to your needs, means something like :

<macrodef name="mfgrep">
  <attribute name="jar"/>
  <attribute name="key"/>
  <attribute name="keysave"/>
    <sequential>
      <loadproperties>
        <zipentry zipfile="@{jar}" name="META-INF/MANIFEST.MF"/>
      </loadproperties>
      <echo>@{key} => ${@{key}}</echo>
      <property name="@{keysave}" value="${@{key}}"/>
    </sequential>
</macrodef> 

 <!-- Grep a key from Manifest -->
 <mfgrep 
   jar="/home/gilreb/temp/test.jar"
   key="Specification-Version"
   keysave="foobar"
 />

afterwards use property ${foobar} for renaming your file :

<move file="myapp-release.apk" tofile="myapp-${foobar}.apk"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文