Córdoba: ¿Cómo establecer diferentes nombres de paquetes por plataforma usando el cordova-cli?

Tengo una aplicación para iOS y Android que estoy actualizando desde PhoneGap 2.x a Cordova 4.0.

Como las aplicaciones de iOS y Android se crearon con PhoneGap 2.x tengo dos proyectos independientes (es decir, un proyecto para iOS y un proyecto para Android). Estos proyectos tienen un directorio compartido www (usando enlaces simbólicos) para los recursos HTML / CSS / JavaScript. Cuando actualizo a Cordova 4.0 puedo tener un solo proyecto Cordova y usar el Cordova CLI para crear proyectos para cada plataforma en el directorio de plataformas.

El nombre del paquete que se utiliza para cada plataforma en Cordova se establece en un archivo compartido config.xml sin embargo. La CLI de Cordova utiliza el nombre del paquete establecido en el archivo config.xml para los comandos perpare, build y add platform.

Desafortunadamente, los nombres de paquetes que se usaron para las aplicaciones PhoneGap 2.x no son los mismos (es decir, el nombre del paquete para la aplicación de Android es diferente al nombre del paquete de la aplicación iOS).

Por ejemplo: la aplicación de Android tiene un nombre de paquete como com.example.applongname, pero la aplicación de iOS tiene un nombre de paquete como com.example.AppShortName. El comienzo del nombre del paquete (es decir, el nombre de dominio de la empresa inversa) es el mismo para cada aplicación, pero los nombres de las aplicaciones son diferentes. El nombre de la aplicación iOS también contiene mayúsculas.

Necesito conservar los nombres de paquetes que se utilizaron para la versión inicial de PhoneGap 2.x para que las aplicaciones puedan actualizarse (es decir, los usuarios finales pueden recibir una actualización que reemplazará la instalación existente de mi aplicación).

¿Cómo puedo establecer el nombre del paquete por plataforma sin crear dos proyectos separados?

Escribir widget de esta manera:

<widget id="com.company.app" android-packageName="com.company.androidapp" ios-CFBundleIdentifier="com.company.iosapp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 

Ver mi otra respuesta para más detalles.

  • ¿Cuál es la longitud máxima de sms concatenados en smpp?
  • Lenguaje de programación universal para Android, iPhone y Windows Phone
  • Cómo determinar el código C se compila para Android / NDK o iOS
  • Trabajadores web en navegadores móviles
  • OpenMP en iOS / Android
  • ¿Objeto raíz o no? ¿Cuál es la mejor práctica para las respuestas de la API?
  • Cómo crear un Webapp para iOS, Android, BBerry, Symbian
  • Phonegap iOS file.path
  • ¿Cómo admitir la visualización de PDF para todos los navegadores móviles?
  • ¿Cuándo es mejor no usar Phonegap?
  • ¿Cómo hago que mis aplicaciones iOS / Android cumplan con la Sección 508 de la Ley de Rehabilitación de los Estados Unidos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.