Skip to content

Most visited

Recently visited

navigation

Cómo controlar la versión de tu app

Vista rápida

  • Es necesario controlar la versión de tu app
  • Establece la versión en los archivos de compilación de Gradle de la app
  • La manera en que controles la versión de tus apps afectará la manera en que los usuarios realizarán actualizaciones
  • Determina tu estrategia de versiones al principio del proceso de desarrollo e incluye consideraciones para versiones futuras.

En este documento:

  1. Establecer información sobre la versión de la aplicación
  2. Especificar los requisitos de nivel de API

Consulta también:

  1. Preparar el lanzamiento
  2. Lista de comprobación de lanzamiento para Google Play
  3. Configurar variantes de compilación

El control de versiones es un componente crítico de la estrategia de actualización y mantenimiento de tu app. Su importancia se debe a lo siguiente:

El sistema Android no usa la información sobre la versión de la app para imponer restricciones sobre cambios a versiones anteriores o posteriores, o sobre compatibilidad con aplicaciones de terceros. Como alternativa, tienes la responsabilidad de imponer restricciones de versiones dentro de tu app o de informar a los usuarios sobre las restricciones y limitaciones de la versión. Sin embargo, el sistema Android impone la compatibilidad con la versión del sistema como se expresa en la configuración de minSdkVersion, en los archivos de compilación. Este atributo permite que una app especifique el nivel mínimo de API de sistema que admite. Para obtener más información, consulta Cómo especificar la versión mínima de API del sistema.

Establecer información sobre la versión de la aplicación

Para definir la información de la versión de tu app, establece los valores de la configuración de la versión en los archivos de compilación de Gradle. Estos valores luego se combinarán en el archivo de manifiesto de tu app durante el proceso de compilación.

Nota: Si tu app define la versión de la app directamente en el elemento <manifest>, los valores de la versión en el archivo de compilación de Gradle anularán la configuración en el manifiesto. Además, definir estas configuraciones en los archivos de compilación de Gradle te permite especificar valores diferentes para distintas versiones de tu app. Para obtener una mayor flexibilidad y evitar un posible reemplazo cuando se integre el manifiesto, debes eliminar estos atributos del elemento <manifest> y definir la configuración de tu versión en los archivos de compilación de Gradle.

Se encuentran disponibles dos atributos y debes definir siempre valores para ambos:

Puedes definir los valores predeterminados para estas configuraciones al incluirlos en el bloque defaultConfig {}, anidados dentro del bloque android {} del archivo build.gradle de tu módulo. Luego puedes anular estos valores predeterminados para diferentes versiones de tu app definiendo valores separados de tipos de compilación individuales o clases de productos. En el siguiente archivo build.gradle se muestran las configuraciones versionCode y versionName en el bloque defaultConfig {}, asi como el bloque productFlavors {}.

android {
  ...
  defaultConfig {
    ...
    versionCode 2
    versionName "1.1"
  }
  productFlavors {
    demo {
      ...
      versionName "1.1-demo"
    }
    full {
      ...
    }
  }
}

En el bloque de este ejemplo defaultConfig {}, el valor versionCode indica que el APK actual contiene la segunda versión de la app y en la string versionName se especifica que aparecerá ante los usuarios como versión 1.1. Este archivo build.gradle también define dos clases de productos, “demo” y “full”. Debido a que la clase de producto “demo” define versionName como “1.1-demo”, la compilación “demo” usa este versionName en lugar del valor predeterminado. El bloque de clase de producto “full” no define versionName. Por lo tanto, este usa el valor predeterminado de “1.1”.

El framework de Android proporciona una API para permitirte realizar consultas al sistema sobre información de la versión de tu app. Para obtener información sobre la versión, usa el método getPackageInfo(java.lang.String, int) de PackageManager.

Nota: Cuando usas Instant Run, Android Studio fija automáticamente versionCode en MAXINT y versionName en "INSTANTRUN".

Especificar los requisitos de nivel de API

Si tu app requiere de una versión específica mínima de la plataforma Android, puedes especificar ese requisito de versión como configuración de nivel de API en el archivo build.gradle de la app. Durante el proceso de compilación, estas configuraciones se combinan con el archivo de manifiesto de tu app. Al especificar los requisitos de nivel de API, garantizas que tu app pueda instalarse únicamente en dispositivos que ejecuten una versión compatible de la plataforma Android.

Nota: Si especificas los requisitos de nivel de API directamente en el archivo de manifiesto de tu app, la configuración correspondiente de los archivos de compilación anulará la del archivo de manifiesto. Además, definir estas configuraciones en los archivos de compilación de Gradle te permite especificar valores diferentes para distintas versiones de tu app. Para obtener una mayor flexibilidad y evitar una posible anulación cuando se integre el manifiesto, deberás eliminar estos atributos del elemento <uses-sdk> y definir las configuraciones de tu nivel de API en los archivos de compilación de Gradle.

Hay dos configuraciones de nivel de API disponibles:

Para especificar los requisitos de nivel de API predeterminado en un archivo build.gradle, agrega una o más de las configuraciones anteriores al bloque defaultConfig {}, anidado dentro del bloque android {}. También puedes anular estos valores predeterminados para versiones diferentes de tu app agregando las configuraciones a los tipos de compilación o a las clases de productos. En el siguiente archivo build.gradle se especifican las configuraciones predeterminadas de minSdkVersion y targetSdkVersion en el bloque defaultConfig {}, y se anula minSdkVersion para una clase de producto.

android {
  ...
  defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 24
  }
  productFlavors {
    main {
      ...
    }
    afterLollipop {
      ...
      minSdkVersion 21
    }
  }
}

Cuando te preparas para instalar tu app, el sistema verifica el valor de estas configuraciones y las compara con la versión del sistema. Si el valor minSdkVersion es superior al valor de la versión del sistema, este evita que se instale la app.

Si no especificas estas configuraciones, el sistema determina que tu app es compatible con todas las versiones de la plataforma.

Para obtener más información, consulta la documentación sobre el elemento de manifiesto <uses-sdk> y el documento Niveles de API. Para hallar configuraciones de compilación Gradle, consulta Configurar variantes de compilación.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)