> For the complete documentation index, see [llms.txt](https://ajgallego.gitbook.io/phonegap/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajgallego.gitbook.io/phonegap/capitulo_commandline/capitulo_commandline_gestion_de_plataformas.md).

# 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:

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

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

```bash
$ 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:

```bash
$ 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:

```bash
$ 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:

```bash
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:

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

Si estamos en un Mac usaremos:

```bash
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:

```bash
$ phonegap platforms ls

# O simplemente:
$ phonegap platforms
```

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

```bash
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):

```bash
$ 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`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ajgallego.gitbook.io/phonegap/capitulo_commandline/capitulo_commandline_gestion_de_plataformas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
