Skip to content

Instantly share code, notes, and snippets.

@k0t0vich
Last active May 13, 2016 15:15
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save k0t0vich/520882d1fa6be40a0429751c8cad69f4 to your computer and use it in GitHub Desktop.
Save k0t0vich/520882d1fa6be40a0429751c8cad69f4 to your computer and use it in GitHub Desktop.
air android ant make apk for armv7 and x86
<flex-config>
<compiler>
<define>
<name>CONFIG::DEBUG</name>
<value>false</value>
</define>
<define>
<name>CONFIG::MARKET</name>
<value>'google'</value>
</define>
</compiler>
</flex-config>
version=1.0
build.number=0
<?xml version="1.0" encoding="utf-8"?>
<project name="Android" basedir="." default="build">
<property file="local.properties"/>
<property file="android.properties"/>
<property file="android.build.number"/>
<property file="pattern.properties"/>
<!-- path to the flex task libraries. -->
<path id="flextasks.classpath">
<fileset dir="${FLEX_HOME}/ant/lib">
<include name="*.jar"/>
</fileset>
</path>
<typedef resource="flexTasks.tasks" classpathref="flextasks.classpath" />
<target name="compile.android" depends="clear">
<buildnumber file="android.build.number"/>
<echo message="Compiling ${temp.dir}/${app.name}.swf"/>
<mxmlc file="${main.src.dir}/${app.name}.${app.type}" output="${temp.dir}/${app.name}.swf">
<load-config filename="${FLEX_HOME}/frameworks/airmobile-config.xml"/>
<load-config filename="android.additional.arguments.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
<source-path path-element="${main.src.dir}"/>
<compiler.library-path dir="../libs" append="true">
<include name="*.swc" />
</compiler.library-path>
<static-link-runtime-shared-libraries />
<compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
<include name="libs/*" />
</compiler.library-path>
</mxmlc>
</target>
<macrodef name="package.android">
<attribute name="arch" default="armv7"/>
<attribute name="versionprefix" default="2"/>
<sequential>
<echo message="Copying Application Description File for Android"/>
<copy file="${main.src.dir}/${app.name}-app.template.xml"
tofile="${temp.dir}/${app.name}-app.xml" overwrite="true"/>
<echo message="Modifying Application Description File"/>
<replace file="${temp.dir}/${app.name}-app.xml" >
<replacefilter token="${airVersionPattern}" value="${AIR_VERSION}" />
<replacefilter token="${fileNamePattern}" value="${app.name}" />
<replacefilter token="${namePattern}" value="${app.label}" />
<replacefilter token="${packagePattern}" value="${package}" />
<replacefilter token="${versionNumberPattern}" value="@{versionPrefix}${version}.${build.number}" />
<replacefilter token="${versionLabelPattern}" value="${version}.${build.number}" />
<replacefilter token="${contentPattern}" value="${app.name}.swf" />
</replace>
<echo message="Packaging for Android -arch @{arch}"/>
<exec executable="${ADT}" dir="${temp.dir}">
<arg value="-package"/>
<arg line="-target apk-captive-runtime"/>
<arg line="-arch @{arch}"/>
<arg line="-storetype pkcs12"/>
<arg line="-keystore ${android.cert}" />
<arg line="-storepass ${android.cert.password}" />
<!--вылетает если apk не в том же каталоге, при использовании -arch, переносим после упаковки-->
<!--<arg value="${dist.dir}/${app.name}.@{versionPrefix}${version}.${build.number}.apk"/>-->
<arg value="${app.name}.@{versionPrefix}${version}.${build.number}.apk"/>
<arg value="${app.name}-app.xml"/>
<arg value="${app.name}.swf"/>
<arg line="${pack.files}"/>
<arg line="-extdir ${anes}"/>
</exec>
<move file="${temp.dir}/${app.name}.@{versionPrefix}${version}.${build.number}.apk" todir="${dist.dir}" overwrite="true"/>
</sequential>
</macrodef>
<target name="clear" >
<delete dir="${temp.dir}"/>
</target>
<target name="copy.pack.to.temp">
<mkdir dir="${temp.dir}"/>
<copy todir="${temp.dir}">
<fileset dir="${pack.assets.dir}"/>
</copy>
</target>
<target name="package.android.all" depends="copy.pack.to.temp">
<package.android />
<package.android versionprefix="6" arch="x86"/>
</target>
<target name="build" depends="clear, compile.android, package.android.all">
<antcall target="clear"/>
</target>
</project>
# полный путь до сертификата андроид
android.cert = ${FULL_CLIENT_PATH}/android/sert.p12
android.cert.password = *****
project.dir = ../android
main.src.dir = ${project.dir}/src
# файлы и директории для упаковки
pack.assets.dir = ${project.dir}/src/assets/pack
pack.files = ico114.png ico512.png mobile-config.xml assets
temp.dir = ${project.dir}/temp
#dist.dir = ${project.dir}/dist
dist.dir = ${DIST_DIR}
app.name = MobileAndroid
## mxml or as
app.type = as
# имя в гуглплее
app.label = MyGame
# пакет
package = ru.games.mygame
# ane
anes = ${FULL_CLIENT_PATH}/anes/android
# локально изменяемые параметры
FLEX_HOME=/Users/user/sdks/flex4.15.0_22
AIR_VERSION = 22.0
FULL_CLIENT_PATH=/Users/user/workspace/mygame/client
# куда кладём дистрибутивы
DIST_DIR = ${FULL_CLIENT_PATH}/android/dist
# для windows вызываем .bat
# ADT = ${FLEX_HOME}/bin/adt.bat
ADT = ${FLEX_HOME}/bin/adt
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/[airVersionPattern]">
<filename>[fileNamePattern]</filename>
<id>[packagePattern]</id>
<name>[namePattern]</name>
<versionNumber>[versionNumberPattern]</versionNumber>
<versionLabel>[versionLabelPattern]</versionLabel>
<initialWindow>
<content>[This value will be overwritten by Flash Builder in the output app.xml]</content>
...
contentPattern = [This value will be overwritten by Flash Builder in the output app.xml]
versionNumberPattern = [versionNumberPattern]
versionLabelPattern = [versionLabelPattern]
packagePattern = [packagePattern]
airVersionPattern = [airVersionPattern]
fileNamePattern = [fileNamePattern]
namePattern = [namePattern]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment