Skip to content

Instantly share code, notes, and snippets.

@lcruz
Last active August 29, 2015 13:57
Show Gist options
  • Save lcruz/9418532 to your computer and use it in GitHub Desktop.
Save lcruz/9418532 to your computer and use it in GitHub Desktop.
<project name="TiDemo" default="dist" basedir=".">
<description>
Script de ejemplo para la compilación proyecto Titanium
</description>
<target name="init">
<property name="project.code" value="TiDemo"/>
<property name="project.src" value="."/>
<property name="ti.executable" value="/usr/local/bin/ti"/>
<property name="alloy.executable" value="/usr/local/bin/alloy"/>
<property name="keychain.password" value="<clave>"/>
<property name="keychain.file" value="/Users/Shared/Jenkins/Library/Keychains/login.keychain"/>
<property name="project.root" value="/Users/Shared/Jenkins/Home/workspace/TiDemo"/>
<property name="app.dir" value="${project.root}/build/iphone/build/Release-iphoneos/tidemo.app"/>
<property name="ipa.file" value="${project.root}/build/iphone/build/Release-iphoneos/tidemo.ipa"/>
<property name="apk.file" value="${project.root}/dist/android/tidemo.apk"/>
<property name="output.dir" value="dist" />
<property name="app.signature" value="NAME (XXXXX)"/>
<property name="mobileprovision.dir" value="/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles"/>
<property name="app.mobileprovision_id" value="XXXX-XXXX-XXXX-XXXX"/>
<property name="app.mobileprovision" value="${mobileprovision.dir}/${app.mobileprovision_id}.mobileprovision"/>
</target>
<!-- Compilar el proyecto utilizando Alloy -->
<target name="alloy">
<exec executable="${alloy.executable}">
<arg value="compile"/>
<arg value="${project.src}"/>
<arg value="--config"/>
<arg value="platform=ios"/>
<env key="PATH" value="${env.PATH}:/usr/local/bin"/>
</exec>
</target>
<!-- Desbloquear el keychain para poder acceder a las credenciales y firmar la app -->
<target name="disable-keychain" depends="init">
<exec executable="security">
<arg value="-v"/>
<arg value="unlock-keychain"/>
<arg value="-p"/>
<arg value="s3cr3t0"/>
<arg value="/Users/Shared/Jenkins/Library/Keychains/login.keychain"/>
</exec>
</target>
<target name="dist" depends="disable-keychain" description="generate the distribution" >
<!-- Macro para generar los APK -->
<macrodef name="makeapk">
<attribute name="environment" default="produccion"/>
<sequential>
<!-- Generar el APK firmado -->
<exec dir="${project.src}" executable="${ti.executable}">
<arg value="build"/>
<arg value="--platform"/>
<arg value="android"/>
<arg value="--android-sdk"/>
<arg value="~/tools/adt-bundle-mac-x86_64-20130729/sdk"/>
<arg value="--project-dir"/>
<arg value="${project.root}"/>
<arg value="--output-dir"/>
<arg value="${project.root}/dist/android"/>
<arg value="--target"/>
<arg value="dist-playstore"/>
<arg value="--alias"/>
<arg value="tidev"/>
<arg value="--keystore"/>
<arg value="~/dev_keystore"/>
<arg value="--password"/>
<arg value="<password>"/>
<env key="PATH" value="${env.PATH}:/usr/local/bin"/>
</exec>
<!-- Copiarlo al directorio de salida -->
<exec executable="mv">
<arg value="${apk.file}"/>
<arg value="${output.dir}/iOS/${project.code}_@{environment}.apk"/>
</exec>
</sequential>
</macrodef>
<!-- Generar versión IOS -->
<macrodef name="makeipa">
<attribute name="environment" default="produccion"/>
<sequential>
<!-- Generar IPA frimado -->
<exec dir="${project.src}" executable="${ti.executable}">
<arg value="build"/>
<arg value="--platform"/>
<arg value="ios"/>
<arg value="--force"/>
<arg value="--output-dir"/>
<arg value="dist/iOS"/>
<arg value="--distribution-name"/>
<arg value="${app.signature}"/>
<arg value="--pp-uuid"/>
<arg value="${app.mobileprovision_id}"/>
<arg value="--target"/>
<arg value="dist-adhoc"/>
<arg value="--sdk"/>
<arg value="3.1.3.GA"/>
<env key="PATH" value="${env.PATH}:/usr/local/bin"/>
</exec>
<exec executable="mv">
<arg value="${ipa.file}"/>
<arg value="${output.dir}/iOS/${project.code}_@{environment}.ipa"/>
</exec>
<exec executable="xcrun">
<arg value="-sdk"/>
<arg value="iphoneos"/>
<arg value="PackageApplication"/>
<arg value="-v"/>
<arg value="${app.dir}"/>
<arg value="--sign"/>
<arg value="${app.signature}"/>
<arg value="--embed"/>
<arg value="${app.mobileprovision}"/>
</exec>
</sequential>
</macrodef>
<property environment="env"/>
<echo>Generando archivos para producción</echo>
<makeapk environment="produccion"/>
<makeipa environment="produccion"/>
<!-- Sobre escribir los iconos y la configuración para genera otra versión -->
<copy file="${project.root}/certificacion/appicon.png" tofile="${project.root}/Resources/iphone/appicon.png"/>
<copy file="${project.root}/certificacion/appicon@2x.png" tofile="${project.root}/Resources/iphone/appicon@2x.png"/>
<copy file="${project.root}/certificacion/currentenv.js" tofile="${project.root}/Resources/config/currentenv.js"/>
<echo>Generando archivos para certificacion</echo>
<makeapk environment="certificacion"/>
<makeipa environment="certificacion"/>
</target>
</project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment