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.

Como modificar el modelo 390 ya presentado dentro de plazo

Hasta ahora usaba declarando.es para ayudarme con la presentación de impuestos, pero en la última presentación de los modelos 303 y 390 el documento que generan estaba mal, y como me fiaba lo presenté sin revisarlo mucho.
Por suerte me di cuenta de que estaba mal dentro de plazo, pero no sabía como rectificarlo.
Intenté volver a presentarla usando otra vez el fichero de ayuda, pero me decía que ya estaba presentada.

Buscando por internet toda la información que encontraba sobre cómo modifica una presentación del 390, era para modificarla fuera de plazo, y básicamente decían que presentara un escrito comunicando el error. Si estáis dentro de plazo no hagáis esto!

Entonces estando dentro de plazo, ¿cómo se hace?

Pues simplemente presentas de nuevo el 390, pero manualmente en vez de usar un fichero que carga los datos.
Al hacerlo así, en la primera página hay una casilla que pone «Declaración sustitutiva», marcáis la casilla y luego hay otro campo en el que pone «Número identificativo declaración anterior», ahí ponéis el número de justificante de 13 dígitos que aparece en la primera página del 390 presentado.

Ahora ya con el anterior 390 vamos revisando las casillas que se rellenaron y se corrige la que estuviera mal y se vuelve a presentar.
Así ya estaría todo correcto.

Aunque parece una entrada muy tonta, espero que ayude a alguien que le pase como a mi y encuentre esta entrada en vez de todas las que hay sobre cómo hacerlo fuera de plazo.

Y después de estos errores tengo claro que abandono declarando.es, ya hace 2 semanas que les informé de otro error en la presentación del 130 y no lo han arreglado ni me han contestado desde que pasaron los datos al departamento de soporte.

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.

Migrar conversaciones Whatsapp de Android a iOS gratis

Me acabo de pasar de Android a iOS y la app «Move to iOS» de Apple mueve casi todo tu contenido del móvil viejo Android al nuevo iOS, pero hay una cosa que no mueve, las conversaciones de Whatsapp.
Después de pasarme un día entero buscando como moverlas y sólo encontrar opciones de pago, por fin he encontrado una opción gratuita llamada watoi.

Para hacer la migración necesitarás un mac con Xcode, iTunes, el fichero msgstore.db con las conversaciones de Whatsapp de Android desencriptadas, tener el whatsapp ya instalado y activado en tu dispositivo iOS nuevo y el Whatsapp.ipa de la misma versión que tengas instalada en tu móvil (tendrás que buscarla en Google)

Si no tienes el msgstore.db primero tendrás que instalar WhatsApp Key/DB Extractor seguir estos pasos

Luego haremos una copia de seguridad del iPhone con iTunes sin encriptar en el disco duro (no iCloud) y usaremos watoi para reemplazar el contenido de las conversaciones de Whatsapp con el de la copia.
No voy a poner todos los pasos, pero lo podéis ver todo en el README.md del proyecto watoi

Una vez cambiado el contenido de la copia de seguridad, la restauramos y el móvil tendrá todas nuestras antiguas conversaciones.

La única limitación que tiene (al menos de momento) es que no restaura los archivos multimedia, aunque a mi eso no me preocupaba.

Si quieres una copia de los archivos multimedia aunque no los puedas meter en el Whatsapp del iPhone, lo que puedes hacer es hacer una copia de seguridad del Whatsapp de Android en Google Drive y luego bajarte esa copia en el ordenador. Las copias de seguridad de Whatsapp en Google Drive no son accesibles, pero he encontrado una herramienta para descargarlas, se llama WhatsApp Google Drive Extractor. Podéis encontrar más información sobre ella aquí
Una vez descargados los puedes subir a Google Drive o iCloud Drive y tenerlos accesibles en el iPhone aunque no estén dentro del Whatsapp

KH-7 Quitagrasas Desinfectante

He probado la nueva variedad que además de quitar la grasa también desinfecta y me ha encantado.

El quita grasas funciona genial, la única pega ha sido la puerta del horno, que no ha sido capaz de quitar toda la grasa que tenía, aunque es un horno de unos 15 años que yo creo que jamás lo habían limpiado los anteriores inquilinos, así que tampoco se pueden pedir milagros. Adjunto unas fotos para que lo veáis.
El resto de cosas, fuegos de la cocina, azulejos, etc ha quedado perfecto.

Y además desinfecta, por lo que viene muy bien para limpiar el cubo de la basura. Para desinfectar usan un desinfectante que no es lejía y que huele muy bien.
Tiene una buena relación calidad-precio, similar al KH7 normal, pero este tiene aún mas usos. Totalmente recomendado.

Cambiar nombre a una librería CocoaPod

Desgraciadamente no se puede cambiar el nombre a una librería CocoaPod que ya has publicado.
Lo único que puedes hacer es publicarla nuevamente con el cambio de nombre y después despublicar la anterior con este comando.

pod trunk deprecate nombre_viejo --in-favor-of=nombre_nuevo

Tras hacer esto, si buscas en la web de CocoaPods, la librería vieja aparecerá con titulo gris en vez de rojo y no clickable, y debajo pondrá:

nombre_viejo has been deprecated in favor of nombre_nuevo

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)

Colutorio lacer

Gracias a testamus he tenido la oportunidad de probar este colutorio y he quedado muy satisfecho con él. Os dejo una foto de una muestra de los productos que me mandaron.

Desde hace un tiempo, me suelen sangrar las encías, y después de usar el colutorio varias semanas el sangrado casi ha desaparecido por completo (algún día todavía se puede ver algo rosita al escupir tras el cepillado, pero puede ser que haya apretado demasiado)

Lo que más me ha gustado ha sido el sabor, es fresco pero sin picar, seguramente que es por no tener alcohol.

La mayor diferencia con otras marcas es que se puede usar varias veces al día (hasta 3) y se usa durante un minuto, otras marcas sólo recomiendan un enjuage al día y 30 segundos. Eso cada cual que lo valore como crea. A mi personalmente me parece menos agresivo que otros y que por eso se puede usar más veces.

Tienen una gran variedad de formatos, desde el familiar de 1 litro (100 usos) hasta el botecito mono dosis de 10ml. A mi me ha gustado especialmente el de 100ml, ya que es ideal para los viajes. Hasta ahora si quería llevar colutorio conmigo tenía que llevarlo en un bote propio, ya que en los aviones no te dejan llevar el grande. Si el viaje el muy corto me llevo unos cuantos individuales.

En amazon podéis encontrar el de 1 litro a buen precio.

 

Para finalizar os dejo la auténtica sonrisa lacer

 

Activar opciones de desarrollo en dispositivos Android

La semana pasada me compré un teléfono nuevo y hoy he ido a probar una aplicación que estaba desarrollando para ver si funcionaba bien en Android 6, pero para mi sorpresa el dispositivo no aparecía en la lista de dispositivos disponibles.

Entonces me he acordodado de que Google no activa las opciones de desarrollo por defecto, y por alguna extraña razón oculta un poco la forma de activarlas.

Para activarlas, tendremos que ir a Ajustes -> Acerca del teléfono y allí pulsar 7 veces sobre Número de compilación

Una vez hecho esto, nos aparecerá una nueva opción en el menú de Ajustes «Opciones de desarrollo». Entramos en la nueva opción y activamos «Depuración por USB», y listo, ya podremos usar nuestro dispositivo para testing.