【发布时间】:2011-03-11 07:58:38
【问题描述】:
通常我们使用命令在调试模式下构建android包
ant debug
得到了apk文件名AppName-debug.apk。
有没有什么方法可以不用'mv'命令直接生成AppName-debug-<version-number>.apk格式的apk文件?
谢谢。
【问题讨论】:
通常我们使用命令在调试模式下构建android包
ant debug
得到了apk文件名AppName-debug.apk。
有没有什么方法可以不用'mv'命令直接生成AppName-debug-<version-number>.apk格式的apk文件?
谢谢。
【问题讨论】:
我使用 Android 清单中的信息以自动方式完成了这项工作。
我的方法是修改本地项目antbuild.xml文件,导入主build.xml文件的自定义副本,在最新版本的SDK中,导入本地文件的主文件位于@ 987654323@(在以前的版本中是 android_rules.xml)请注意项目本地默认 build.xml 文件中的 import 行。
由 Android 工具创建的本地 build.xml 中的 cmets 包含有关如何进行自定义的详细信息,以便将来对工具的更新不会破坏您的更改。
在自定义规则文件中添加:
<xmlproperty file="AndroidManifest.xml" prefix="mymanifest" collapseAttributes="true"/>
这在清单中读取为一组 ant 属性,并带有自定义前缀以确保没有名称冲突。
然后您可以将 ${mymanifest.manifest.android:versionName} 添加到任何定义了 apk 名称的位置,只需在自定义规则文件中搜索 .apk。 p>
我已使用此过程从构建服务器自动执行版本控制文件。
通过一些额外的调整,还可以让您的发布应用程序自动签名,购买在属性中设置密码并在签名任务中使用这些密码。实际密码存储在单独的属性文件中,该文件仅存在于构建服务器上。虽然安全风险很小,但在某些情况下,它被完全端到端构建自动化的需求所抵消。
【讨论】:
另一个更类似于 Android 的解决方案是使用 XPATH 任务,因为它在 ${sdk.dir}/tools/ant/build.xml 中完成:
<xpath input="AndroidManifest.xml" expression="/manifest/@android:versionName"
output="versionName" default="unknown"/>
<echo message="name: ${versionName}"></echo>
这需要定义任务:
<path id="android.antlibs">
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
</path>
<taskdef name="xpath"
classname="com.android.ant.XPathTask"
classpathref="android.antlibs" />
我不知道哪个是最低 SDK 版本,但它适用于 SDK14。
问候, 迈克尔
【讨论】:
以下帖子中描述的解决方案具有 custom_rules.xml 文件,只需复制该文件即可获得所需的结果。 http://jeffreysambells.com/2013/02/14/build-your-android-apk-with-the-manifest-version-number
【讨论】:
是的,有一种方法可以生成任意名称的 apk 文件
1-右键单击包资源管理器中的应用程序。 2-选择出口。 3 选择 Android 4-选择导出 Android 应用程序。 5-创建新的密钥库。 6-填写表格。 7-: 给 apk 文件名你想要的 8-:给apk提供位置来存储apk。
然后您就可以找到问题的解决方案。 我希望这会有所帮助。
【讨论】: