Compilar y probar una aplicación

Para compilar un proyecto ejecutamos el comando:

$ phonegap build

Este comando tiene que se ejecutado dentro de la carpeta del proyecto a compilar y además tienen que haber plataformas añadidas para el mismo, en otro caso nos mostraría el error:

[phonegap] executing 'cordova build'...
No platforms added to this project. Please use `cordova platform add <platform>`.

Al compilar se genera el código del proyecto para todas las plataformas añadidas, en caso de querer compilar solamente para una plataforma lo podríamos indicar de la forma:

$ phonegap build ios

El comando build en realidad realiza dos operaciones que son las de preparar el código (copiar el código actual del proyecto desde la carpeta www a todas las plataformas destino) y compilarlo. Estos dos comandos también los podríamos ejecutar por separado:

$ phonegap prepare
$ phonegap compile
# O también para solo una plataforma:
$ phonegap prepare ios
$ phonegap compile ios

Después de llamar al comando prepare podríamos abrir de forma manual el proyecto desde la carpeta de la plataforma que queramos con el SDK correspondiente, por ejemplo con Xcode, con Eclipse o con Android Studio.

Esta alternativa es interesante si lo que se desea es crear una versión inicial del proyecto mediante el CLI de PhoneGap y después cambiar al IDE del SDK correspondiente. En este caso tenemos que llevar cuidado ya que si volvemos a compilar para actualizar el código de la carpeta www es posible que perdiésemos algunos cambios.

Para más información sobre como desarrollar aplicaciones con cada uno del os IDEs soportados podéis consultar la web:

http://docs.phonegap.com/en/edge/guide_platforms_index.md.html#Platform Guides

Nota: en caso de querer abrir nuestro proyecto para Android desde Eclipse tendremos que utilizar la opción "File > New > Other... > Android > Android project from existing code" (y no la opción de importar "Existing projects into workspace").

Probar una aplicación en un emulador o dispositivo real

Cada SDK para una plataforma móvil suele incluir un emulador que permite probar las aplicaciones desarrolladas. Estos emuladores también se pueden llamar desde el CLI de PhoneGap mediante el siguiente comando:

$ phonegap emulate
# O para una plataforma:
$ phonegap emulate android

Para que se abra el emulador correspondiente debe de estar bien configurado. Algunas plataformas ya traen uno por defecto (como iPhone), pero en otras será necesario configurar el emulador por defecto a utilizar (como en Android).

Es importante que antes de llamar al emulador ejecutemos el comando build el cual copiará la última versión de nuestro código, generará los proyectos correspondientes y los compilará. En otro caso podríamos tener errores.

Si actualizamos el código tendríamos que llamar de nuevo a build y a emulate, el cual actualizará los emuladores abiertos con la última versión.

También podemos probar nuestro código en un dispositivo real mediante el comando:

$ phonegap run android

El comando run en realidad es una combinación de los comandos build (por lo que no haría falta llamarlo previamente) e install (el cual instala un proyecto en una plataforma). Por defecto run instala y ejecuta el proyecto en una plataforma real (lo cual podemos forzar mediante el parámetro --device), o también lo podemos utilizar para ejecutar en un emulador añadiendo el parámetro --emulator.

Antes de ejecutar en un dispositivo real tenemos que configurarlo para permitir la instalación de aplicaciones de prueba. Este proceso varia para cada plataforma, por ejemplo, para Android tendremos que habilitar las opciones de desarrollador y la depuración a través de USB, además, dependiendo del sistema operativo que utilicemos, es posible que tengamos que instalar drivers o realizar alguna configuración adicional.