Cordova Build – ignora los archivos
Al compilar una aplicación cordova cada archivo en mi carpeta /www
se copia en la carpeta assets/www
(android) pero me gustaría personalizar qué archivos se copian. Utilizo varios pseudo-lenguajes como CoffeeScript, Jade o Stylus que son compilados automáticamente por mi IDE y no deben ser enviados a la aplicación final.
- Cordova error (ERROR construyendo una de las plataformas)
- Cordova no puede agregar Android falló con el código de salida ENOENT
- Cordova: ¿Es posible tener diferentes IDs de aplicación para android y plataformas ios?
- Cordova / PhoneGap Plugin Desarrollo de flujo de trabajo para Android
- Importe facebook SDK al proyecto cordova / phonegap
- Phonegap 3.3 Eclipse: Proyecto -CordovaLib falta las propiedades de Android
- Phonegap - actualizar a 3.0 problemas con funciones de API
- En Córdoba, ¿cómo puedo especificar diferentes nombres de paquetes para ios y android?
- Cordova-plugin-contacts-No obtener todas las fechas del evento
- Error al intentar utilizar "cordova build" en un proyecto de Android con referencias de subproyectos
- Uso de Canvas Signature pad que he creado en el emulador está funcionando bien, pero en el dispositivo Android dos pad de firma está llegando
- Error en la aplicación Phonegap: módulo no capturado cordova / plugin_list ya definido
- Desarrollando con Eclipse y Phonegap / Cordova 3
Con la ayuda de este artículo , encontré que puedes crear / editar la platform/android/ant.properties
, y añadirle la siguiente línea:
aapt.ignore.assets=!*.map:!thumbs.db:!.git:.*:*~
Con esta línea, cualquier archivo o directorio que coincida con uno de estos patrones no se incluirá en el archivo .apk:
-
*.map
-
thumbs.db
-
.git
-
.*
-
*~
He encontrado que la edición de las platforms/android/build.xml
no funcionará porque se sobrescribe cada vez que se invoca la construcción; También, la creación de un archivo build.xml
en la raíz del proyecto no funcionó.
Las reglas para esta propiedad son las siguientes, tomadas de $ANDROID_HOME/tools/ant/build.xml
:
<!-- 'aapt.ignore.assets' is the list of file patterns to ignore under /res and /assets. Default is "!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" Overall patterns syntax is: [!][<dir>|<file>][*suffix-match|prefix-match*|full-match]:more:patterns... - The first character flag ! avoids printing a warning. - Pattern can have the flag "<dir>" to match only directories or "<file>" to match only files. Default is to match both. - Match is not case-sensitive. --> <property name="aapt.ignore.assets" value="" />
La carpeta y los archivos ocultos (. *) Serán ignorados por defecto
Todos los archivos y carpetas ocultos serán ignorados mientras se crea por ejemplo .git/
& .gitignore
Para ocultar: Cambie el nombre de la carpeta por a .
(Punto) precedido al nombre de la carpeta / archivo.
Para cambiar el nombre de una carpeta con. (Punto) al inicio es posible que necesite CLI
Utilice Terminal en Linux / Mac para cambiar el nombre de la carpeta.
mv dev .dev
Utilizar cmd en Windows
ren dev .dev
No sé de ninguna manera cómo filtrar los archivos de Córdoba, pero puedo describir el enfoque que utilizamos en nuestros proyectos.
Estamos usando gruntjs con plugin phonegap . Lo configuramos para usar la carpeta pre-construida (que contiene sólo los archivos y carpetas necesarios) y:
- Crea proyecto cordova / phonegap
- Agrega complementos, plataformas
- Crea aplicación nativa
- Lanza la aplicación nativa en el emulador
Lo principal en este enfoque es que cordova / phonegap proyecto (directorio con .cordova, plataformas y carpetas www) es sólo un artefacto de construcción.
Aquí es parte relevante de nuestro Gruntfile.js como un ejemplo:
phonegap : { config : { root : './out/dist', config : { template : './config.tpl.xml', data: { id: pkg.id, version: pkg.version, name: pkg.name, author : pkg.author } }, path : 'out/phonegap', plugins : [ // PHONEGAP OFFICIAL PLUGINS 'org.apache.cordova.globalization', 'org.apache.cordova.network-information', 'org.apache.cordova.splashscreen', //THIRD-PARTY PLUGINS 'de.appplant.cordova.plugin.local-notification' ], platforms : [ 'android' ], maxBuffer : 200, // You may need to raise this for iOS. verbose : false, releases : 'out/releases', releaseName : function() { return pkg.name + '-v' + pkg.version; }, // Android-only integer version to increase with each release. // See http://developer.android.com/tools/publishing/versioning.html versionCode : function() { return 1; } } }
Tenga en cuenta que out / dist se genera por paso de compilación anterior y contiene versión concatenada y minified de código.
He creado un script personalizado para ignorar archivos / carpetas que funciona no sólo para android:
Añada esto a su config.xml :
<ignore entries="lang,foo/bar,ignore/asdf.html" />
Y necesita dos archivos más ubicados en las carpetas hooks / before_build y hooks / after_build .