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 6 o superior
    • cordova platform rm ios
    • cordova platform add ios@latest

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.

Compilar aplicación phonegap en la nube con Ionic AppFlow

Hace tiempo que Apple anunció que a partir de abril de 2020, las apps no podrían usar UIWebView, si usas Cordova CLI o Phonegap CLI en local no tendrás ningún problema.

Pero qué pasa si usabas Phonegap build? pues Phonegap build no se ha actualizado para poder usar cordova-ios 5.1.1, ni se va a actualizar porque han anunciado que cesan el servicio.
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).
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 eras usuario de Phonegap build, aquí tienes una alternativa fácil de usar y con más funcionalidades.

San Miguel Manila

Gracias a trnd he tenido la ocasión de probar la cerveza San Miguel Manila.

La cerveza San Miguel Manila, es una lager de especialidad con lúpulos aromáticos que proporcionan aromas herbales, florales y frutales además de un amargor equilibrado y persistente y lúpulos amargos que consiguen el amargor equilibrado y
ligeramente persistente de la cerveza.

Está elaborada con una mezcla de maltas Pilsen y maltas caramelizadas.
La combinación de estas maltas y lúpulos con avena le aportan cuerpo y le
proporcionan una suavidad especial en la boca.
Tiene un color dorado intenso con reflejos ambarinos, de aspecto brillante, espuma
cremosa y consistente de color beige claro.

La he probado tanto por si sola, como para acompañar diversas comidas, y la mejor mezcla ha sido con comida mexicana picante, porque realza su sabor y rebaja su amargor. Pero sola también está buena y es muy refrescante.

Vernel supreme

Gracias a Testamus he tenido la ocasión de probar los nuevos suavizantes Vernel Supreme.

Me han enviado 2 variedades, Glamour y Romance

Ambos tiene un olor floral creado por perfumistas franceses y además tiene millones de partículas suavizantes que se impregnan en la ropa durante el lavado, y hacen que su fragancia dure semanas.

No sólo eso, también dejan la ropa muy suave.

El envase es pequeño y muy manejable, y se dosifica en el tapón teniendo 3 medidas diferentes en función de los kilos de ropa a lavar.
Lo recomiendo

Os dejo unos enlaces para comprarlo en amazon

Vernel Suprême Suavizante Concentrado Romance 1200ml

Vernel Supreme Passion, Romance, Glamour Suavizante Juego 3 x 600 ml

Suavizante Supreme Romance Vernel 600ml

Vernel Suprême Suavizante Passion Botella, 7 unidades) (7 x 600 ml)

Suavizante Supreme Glamour Vernel 600ml

Vernel Supreme Passion púrpura Suavizante 24 WL 600 ml (Pack of 6)

Vernel Supreme Romance Suavizante 24 WL 600 ml (Pack of 6)

Vernel Suprême Suavizante Romance Botella, 7 unidades) (7 x 600 ml)

Vernel Supreme Passion, Romance, Glamour Suavizante Juego 6 x 600 ml

Vernel Supreme Glamour Oro Suavizante 24 WL 600 ml (Pack of 6)

Vernel Suprême Suavizante Glamour Botella, 7 unidades) (7 x 600 ml)