【发布时间】:2017-10-11 06:38:37
【问题描述】:
我有一个带有 android versionCode:12 和 versionName:1.0.1.2 的 android manifest.xml 文件,我正在尝试使用 perl 自动增加 versionCode 和 VersionName 以及使用 perl 脚本的主要、次要、补丁和构建逻辑。这是我的清单文件。自动递增后 versionName 将像 1.0.1.3 和 versionCode 像 13。
<?xml version="1.0" encoding="utf-8"?><manifest android:versionCode="12" android:versionName="1.0.1.2" package="com.test.prat" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
我还有 strings.xml 文件来更新 strings.xml 文件中的 versionName,自动递增 versionName 也应该在 strings.xml 文件中更新。这是我的 strings.xml 文件
<!-- This file is automatically generated, please do not update -->
<!-- decibel abbreviation -->
<string name="txt_abbreviation_decibel_label">dB</string>
<string name="txt_android_app_version">1.0.1.2</string>
</resources>
在自动增量之后,我想将 versionName 设置为环境变量,以便在 svn commit 阶段使用,例如'svn commit “update versionName 1.0.1.2”'
请指教。
【问题讨论】:
-
perl -pe 's/(1.0.1.2)|versionCode="\K(12)/($1)?"1.0.1.3":13/eg; ' xml.txt -
在我看来这是硬代码,我想自动增加 versionCode 和 versionName。并将 versionName 设置为环境变量。请问你能有一个解决方案吗?