Gestión de plataformas

Antes de poder compilar el proyecto tenemos que especificar las plataformas para las cuales se va a generar. Las plataformas disponibles dependerán del sistema operativo que utilicemos, si soporta el SDK en cuestión o si lo tiene instalado (y si no lo tiene lo tendremos que instalar). En general soporta las siguientes combinaciones:

Mac

Linux

Windows

iOS

x

Amazon Fire OS

x

x

x

Android

x

x

x

BlackBerry 10

x

x

x

Windows Phone 8

x

Windows

x

Firefox OS

x

x

x

Añadir plataformas

Para añadir una plataforma para la cual queremos compilar nuestro proyecto usaremos el siguiente comando:

$ phonegap platform add <nombre-de-la-plataforma>

Por ejemplo, en un Mac podremos añadir las siguientes plataformas a nuestro proyecto:

$ phonegap platform add ios
$ phonegap platform add amazon-fireos
$ phonegap platform add android
$ phonegap platform add blackberry10
$ phonegap platform add firefoxos

O desde el sistema operativo Windows todas las siguientes:

$ phonegap platform add wp8
$ phonegap platform add windows
$ phonegap platform add amazon-fireos
$ phonegap platform add android
$ phonegap platform add blackberry10
$ phonegap platform add firefoxos

Ejemplo: Añadir la plataforma Android

Por ejemplo, tras crear nuestro primer proyecto "myapp" en Linux, procedemos a añadir la plataforma Android como destino de la compilación, con el comando:

$ phonegap platform add android

Si nos indicara que el SDK no está instalado en primer lugar tendríamos que descargarlo e instalarlo nosotros manualmente (el CLI de PhoneGap no incluye opciones para realizar la instalación de los distintos SDKs).

También es posible que no encuentre la ruta del SDK:

Error: ANDROID_HOME is not set and "android" command not in your PATH.

Para arreglar este problema tenemos que asignar la ruta del SDK de Android a la variable "ANDROID_HOME" y al "PATH". Para esto en una consola de Linux ejecutamos:

export ANDROID_HOME=/<installation location>/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platforms-tools

Si estamos en un Mac usaremos:

export ANDROID_HOME=/<installation location>/android-sdk-macosx
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Para hacer estos cambios permanentes (de otra forma solo estarían disponibles para la consola actual) tendremos que añadir las líneas indicadas al fichero .bashrc (o a .profile o .bash_profile, dependiendo del sistema).

Después de arreglar estos problemas ya tendríamos que poder instalar la plataforma sin problemas.

Listar plataformas

Para obtener un listado con las plataformas disponibles para nuestro sistema operativo además de un listado con las plataformas que ya hemos añadido a nuestra aplicación tenemos que ejecutar el comando:

$ phonegap platforms ls
# O simplemente:
$ phonegap platforms

Lo que nos mostraría (en ambos casos):

Installed platforms: android 4.1.1, ubuntu 4.0.0
Available platforms: amazon-fireos, blackberry10, browser, firefoxos

Nota: las opciones "platform" y "platforms" son equivalentes.

Eliminar una plataforma

Para eliminar una plataforma añadida podemos ejecutar alguno de los siguientes comandos (los cuales son equivalentes):

$ phonegap platform remove android
# O también:
$ phonegap platform rm android

Contenido de la carpeta "platforms"

Al añadir una plataforma o eliminarla únicamente estamos trabajando sobre la carpeta "platforms" de nuestro proyecto. Al añadir una nueva se genera un subdirectorio con el nombre de la plataforma en cuestión, copiando dentro de la misma el contenido de la carpeta "www" (la cual contiene el código de nuestro proyecto). Por ejemplo, para Android se copiaría en la ruta: platforms/android/assets/www/ o para iOS en la ruta: platforms/ios/www.

Por este motivo es importante que no modifiquemos el contenido de nuestro proyecto o aplicación directamente en la carpeta platforms, ya que sería borrado o sobreescrito en la siguiente compilación. Cualquier cambio que queramos hacer en el mismo lo tendremos que realizar siempre sobre la carpeta base www.