Archivo de la categoría: Sin categoría

Compilar aplicación phonegap en la nube con Ionic AppFlow

Hace tiempo que Apple anunció que a partir de abril, las apps no podrían usar UIWebView, si usas Cordova CLI o Phonegap CLI en local no tendrás ningún problema como ya expliqué en http://este artículo.

Pero que pasa si usas Phonegap build? pues Phonegap build aún no se ha actualizado para poder usar cordova-ios 5.1.1, entonces que podemos hacer? Pues o compilamos en local o buscamos una alternativa, por ejemplo Ionic AppFlow.

Lo primero sería instalar el CLI de ionic y logearse con la cuenta

npm install -g @ionic/cli
ionic login

E introducimos nuestro usuario y contraseña.

Luego crearíamos una aplicación cordova/Phonegap (si ya tienes una te puedes saltar el paso)

cordova create cordovaAppflow es.phonegap.appflow cordovaAppflow
cd cordovaAppflow

AppFlow en teoría sólo acepta apps Ionic, pero con este comando puedes convertir tu proyecto cordova en proyecto Ionic sin necesidad de usar el framework
ionic init

Introducimos un nombre de proyecto, cordovaAppflow otra vez, y en project type seleccionamos custom. Luego le decimos al CLI que la app es Cordova.
ionic integrations enable cordova

Nos preguntará si queremos sobreescribir el config.xml, le decimos que no. Y con eso ya estaría.

Ahora vamos a subir la aplicación a AppFlow con este comando
ionic link

Seleccionamos «Create a new app on Ionic Appflow «, nos vuelve a pedir un nombre, así que otra vez cordovaAppflow. Ahora te preguntará donde alojar el código, en GitHub on en AppFlow, si ya lo tenías en GitHub selecciona esa opción, si no mejor alojarlo en AppFlow directamente. Y finalmente hacemos un commit del código.
git add .
git commit -a -m "Initial commit"
git push ionic master

Y ya estaría nuestra app subida.
Ahora vamos al dashboard de AppFlow y pinchamos en Apps, allí debería estar la app que acabamos de subir.

Pinchamos en ella y no saldrán nuevas pestañas. Vamos a la pestaña «Build -> Certificates» y ahí subimos nuestro provisioning profile y certificado de desarrollo (o producción). Si no tienes, en este tutorial expliqué como hacerlo desde windows.
Ahí pinchamos en «Add your first Profile», ponemos un nombre y el tipo, en mi caso «Development». Y en la siguiente pantalla subimos el certificado, introducimos su contraseña y subimos también el provisioning profile. Finalmente hacemos click en «Save» y ya estaría configurado.
Ahora vamos a «Builds» y pinchamos en «Create your first build», seleccionamos un commit, en este caso sólo hay uno. Por último en la siguiente pantalla seleccionamos la versión de Xcode que usaremos para compilar, el certificado y hacemos click en «Build».
Tardará un rato, así que esperamos hasta que ponga «Job succeeded«, y cuando lo veamos volvemos a pinchar en «Builds» y ahí nos saldrá el historial de builds y a la derecha un icono para descargar el .ipa.
Lo podemos instalar desde Xcode o subirlo por ejemplo a diawi.

Si hacemos el build como Distribución, ahora AppFlow tiene una nueva funcionalidad que permite subirlo directamente a la App Store sin necesidad de descargar el .ipa y sin tener que subirlo con Application Loader.

Así que si eres usuario de Phonegap build y llega el día en que Apple empiece a rechazar tus aplicaciones porque no lo actualicen a Xcode 11 y a cordova-ios 5.11, ya tienes una alternativa fácil de usar y con más funcionalidades.

Como solucionar el ITMS-90809: Deprecated API Usage

Si has desarrollado una aplicación Cordova y al subirla a la App Store has recibido el aviso «ITMS-90809: Deprecated API Usage» sabrás que en breve Apple no aceptará aplicaciones que usen la UIWebView.
¿Cómo podemos solucionarlo?

Pues es muy sencillo.
Debes seguir estos pasos:

  1. Actualiza a cordova-ios 5.1.1.
    • cordova platform rm ios
    • cordova platform add ios@latest
  2. Instala un plugin de WKWebView, por ejemplo el cordova-plugin-ionic-webview o cordova-plugin-wkwebview-engine
    • cordova plugin add cordova-plugin-ionic-webview (nota, sólo funciona en iOS 11 o superior)
  3. Añade esta preferencia al config.xml
    • <preference name="WKWebViewOnly" value="true" />

Y ya estaría, ahora simplemente creamos el .ipa como haríamos normalmente y lo subimos a App Store Connect y esta vez ya no nos mandarían el aviso.

Si después de seguir estos pasos todavía recibiésemos el aviso, es debido a que algún plugin de los que usamos no está actualizado.
Por ejemplo si tienes el plugin cordova-plugin-inappbrowser aseguraos de tener la versión 3.2.0.
Otros plugins que pueden tener referencias a la UIWebView y que harían saltar la alarma son los de google analytics, facebook, firebase, linkedin, hay muchos, en estos casos tendréis que buscar la última versión de cada uno y en caso de que no esté arreglado tendréis que eliminar el plugin o actualizarlo vosotros mismos para que use un SDK más reciente que no use la UIWebView.

Actualiza tu aplicación cordova Android a la versión 4.1.1 o superior

He recibido un aviso de google que dice que a partir del 9 de mayo no se podrán publicar en google play actualizaciones o nuevas apps que usen una versión de cordova inferior a la 4.1.1 por contener vulnerabilidades que fueron arregladas en la versión 4.1.1

Podéis actualizar fácilmente desde el CLI con el siguiente comando desde la carpeta de vuestro proyecto:

cordova platform update android@4.1.1

O si queréis tener soporte para Android Marsmallow, actualizar a la última versión

cordova platform update android

 

Si usáis phonegap build seleccionar el cli-5.2.0 o superior, ya que usa la versión 4.1.1 de cordova android

Más información