Android ant修改包名打包 (轉)
http://blog.zdyc.net/html/diary/newWrite/showlog_vm/sid=1/cat_id=-1/log_id=283
<?xml version="1.0" encoding="UTF-8"?>
<!--
1、拷貝當前專案到臨時目錄
2、修改 AndroidManifest_ZYY.xml包名
3、生成新的R檔案
4、編譯
5、生成dex檔案
6、打包資原始檔
7、APK打包
-->
<project name="build" default="packageAPK" basedir=".">
<property name="sdk.dir" location="D:/DeveloperPlatform/android-sdk-windows"/>
<property name="project_org.dir" value="D:/androidWork/TVJU_ZYY" />
<property name="reasedAPK" value="TVJU.APK" />
<property name="old_package_name" value="com.babao.tvju" />
<property name="new_package_name" value="com.jrm.zyy2" />
<property name="keystore" value="${project_org.dir}/keystore/mstar" />
<property name="storepass" value="111111" />
<property name="storealias" value="mstar" />
<property name="storekeypass" value="111111" />
<property name="sdk.platformtools" value="${sdk.dir}/platform-tools" />
<property name="sdk.tools" value="${sdk.dir}/tools" />
<property name="aapt" value="${sdk.platformtools}/aapt.exe" />
<property name="adb" value="${sdk.platformtools}/adb.exe" />
<property name="dx" value="${sdk.platformtools}/dx.bat" />
<property name="apkbuilder" value="${sdk.tools}/apkbuilder.bat" />
<property name="android.jar" value="${sdk.dir}/platforms/android-10/android.jar" />
<property name="build.dir" value="${project_org.dir}/build" />
<property name="project.dir" value="${project_org.dir}/temp" />
<property name="classes.dir" value="${project.dir}/bin/classes" />
<property name="buildtemp.dir" value="${project.dir}/build" />
<property name="src.dir" value="${project.dir}/src" />
<property name="res.dir" value="${project.dir}/res" />
<property name="gen.dir" value="${project.dir}/gen" />
<property name="asset.dir" value="${project.dir}/asset" />
<!-- 設定路徑和初始化環境 -->
<path id="android.antlibs">
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar"/>
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar"/>
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar"/>
</path>
<!--android 環境的建立-->
<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs"/>
<!-- 初始化 -->
<target name="init">
<delete dir="${build.dir}"></delete>
<mkdir dir="${build.dir}"/>
<delete dir="${project.dir}"></delete>
<mkdir dir="${project.dir}"/>
<copy todir="${project.dir}">
<fileset dir="${project_org.dir}" includes="**/*"/>
</copy>
<replaceregexp flags="g" encoding="UTF-8" byline="true">
<regexp pattern="package(.*)${old_package_name}"/>
<substitution expression="package="${new_package_name}"/>
<fileset dir="${project.dir}" includes="AndroidManifest.xml"/>
</replaceregexp>
<replaceregexp flags="g" encoding="UTF-8" byline="true">
<regexp pattern="import(.*)${old_package_name}.R"/>
<substitution expression="import ${new_package_name}.R"/>
<fileset dir="${project.dir}/src" includes="**/*.java"/>
</replaceregexp>
</target>
<!--生成R.java檔案 ${sdk.dir}\platform-tools\aapt.exe-->
<target name="genRJava">
<exec executable="${aapt}" failonerror="true">
<arg value="package"/>
<arg value="-m"/>
<arg value="-J"/>
<arg value="${project.dir}/gen"/>
<arg value="-M"/>
<arg value="${project.dir}/AndroidManifest.xml"/>
<arg value="-S"/>
<arg value="${res.dir}"/>
<arg value="-I"/>
<arg value="${android.jar}"/>
</exec>
</target>
<!-- 專案編譯 -->
<target name="compile" >
<javac encoding="UTF-8" target="1.5" debug="true" extdirs=""
srcdir="${gen.dir};${src.dir}"
destdir="${classes.dir}" bootclasspath="${android.jar}">
<classpath>
<fileset dir="${project.dir}/libs" includes="*.jar">
</fileset>
</classpath>
</javac>
</target>
<!-- 生成dex檔案 ${sdk.dir}\platform-tools\dx.bat -->
<target name="dex" >
<apply executable="${dx}" failonerror="true" parallel="true">
<arg value="--dex"/>
<arg value="--output=${buildtemp.dir}/classes.dex"/>
<arg path="${classes.dir}"/>
<fileset dir="${project.dir}/libs" includes="*.jar"/>
</apply>
</target>
<!-- 打包資原始檔 ${sdk.dir}\platform-tools\aapt.exe -->
<target name="packageRes">
<exec executable="${aapt}" failonerror="true">
<arg value="package"/>
<arg value="-f"/>
<arg value="-M"/>
<arg value="${project.dir}/AndroidManifest.xml"/>
<arg value="-S"/>
<arg value="${res.dir}"/>
<arg value="-A"/>
<arg value="${asset.dir}"/>
<arg value="-I"/>
<arg value="${android.jar}"/>
<arg value="-F"/>
<arg value="${buildtemp.dir}/resources.ap_"/>
</exec>
</target>
<!-- 打包Apk -->
<target name="packageAPK" depends="init,genRJava,compile,dex,packageRes">
<!-- 打包 -->
<exec executable="${apkbuilder}" failonerror="true">
<arg value="${buildtemp.dir}/unsigntest.apk"/>
<arg value="-u"/>
<arg value="-z"/>
<arg value="${buildtemp.dir}/resources.ap_"/>
<arg value="-f"/>
<arg value="${buildtemp.dir}/classes.dex"/>
<arg value="-rf"/>
<arg value="${src.dir}"/>
<arg value="-rj"/>
<arg value="${project.dir}/libs"/>
</exec>
<!-- 簽名 -->
<!--java -jar signapk.jar platform.x509.pem platform.pk8 TVJU.apk new.apk -->
<!-- <exec executable="java" failonerror="true">
<arg value="-jar"/>
<arg value="${project.dir}/STBsign/signapk.jar"/>
<arg value="${project.dir}/STBsign/platform.x509.pem"/>
<arg value="${project.dir}/STBsign/platform.pk8"/>
<arg value="${buildtemp.dir}/unsigntest.apk"/>
<arg value="${buildtemp.dir}/TVJUSIGN.apk"/>
</exec> -->
<!-- -->
<signjar
jar="${buildtemp.dir}/unsigntest.apk"
signedjar="${build.dir}/${reasedAPK}"
keystore="${keystore}"
storepass="${storepass}"
alias="${storealias}"
keypass="${storekeypass}"
verbose="-verbose"/>
</target>
</project>
相關文章
- Ant自動打包(可動態修改包名、資源等)生成不同簽字不同包名的APPAPP
- 利用 ant 指令碼修改專案包名指令碼
- Android 多包名打包應用Android
- Android ant自動打包指令碼:自動替換友盟渠道、版本號、包名Android指令碼
- Android使用Ant自動編譯簽名打包詳解Android編譯
- ant:如何用ant將web project打包成war包WebProject
- ReactNative工程修改Android包名ReactAndroid
- Android自動打包、簽名、優化、上傳ANT指令碼Android優化指令碼
- Android Studio修改專案名和包名Android
- 使用ANT打包Android應用Android
- android Ant 批量多渠道打包 總結!Android
- android 使用ANT批量打包apk步驟AndroidAPK
- webpack打包時如何修改檔名Web
- Android使用Ant進行apk多渠道打包AndroidAPK
- Ant打包例項
- 通過ant指令碼編譯打包android工程指令碼編譯Android
- 簽名打包Android版apkAndroidAPK
- Android App的簽名打包AndroidAPP
- ant打包部署web工程Web
- Eclipse 如何快速修改工程名及包名Eclipse
- Android 程式設計下如何修改 jar 檔案的包名Android程式設計JAR
- 如何更有效地修改Android程式的開發包名Android
- Android自定義打包apk名稱AndroidAPK
- Android打包簽名那點事Android
- Android Studio 修改包名 com.example.calculator----->com.melon.calculatorAndroid
- web專案ant打包完整案例Web
- 什麼是Ant - 打包工具?
- Android 打包簽名 從生成keystore到完成簽名Android
- Android Studio打包apk,aar,jar包AndroidAPKJAR
- android 利用shell指令碼重新打包簽名Android指令碼
- Android 生成簽名apk與多渠道打包AndroidAPK
- Android 自動編譯、打包生成apk檔案 3 - 使用SDK Ant方式Android編譯APK
- 多包名打包以及整合“極光推送”的坑點(區別於“多渠道打包”)
- Android Studio 簽名打包過程圖解Android圖解
- 教你在Android自動打包解包簽名方法Android
- Java 如何打增量 jar 包【修改部分檔案不需全部打包】JavaJAR
- React-Native修改安卓平臺的包名React安卓
- ant打包出現null returned: 1報錯Null