Mac os en mi Ubuntu

Llevo varios años desarrollando aplicaciones móviles, la última nomorepass, y me encuentro siempre en la tesitura de tener que compilar la aplicación en un mac nativo. Supongo que eso es un peaje que Apple pide por «dejarte» usar ios, pero es que gastarse unos cuantos miles de euros solo para compilar una aplicación es bastante aberrante.

CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 82

Hace unos años me compré un macbook pro de 15″ que me ha dado buen servicio hasta hace cosa de tres años en que falló el chip gráfico de nvidia y el servicio técnico me cambió la placa entera (700 Euros) y me querían cobrar otros 400 si se me ocurría reclamar mi placa vieja… Negociazo redondo para apple cuando cambie un chip y le endose la misma placa a otro ingenuo… En fin, que se me han quitado las ganas de comprar un apple y el que tenemos en la oficina es un poco «lento» y tarda una eternidad en compilar un simple proyecto (más con cada actualización del sistema operativo). Por esto he estado intentando de todas las maneras posibles poder hacer esa compilación en una máquina profesional de verdad que corriese linux.. He intentado hackintosh, he intentado virtualbox, etc… Hasta que hace poco encontré que se puede instalar una versión de mac en qemu… Una versión genuina, sin modificar… Y dicho y hecho…

Forma sencilla

La forma más sencilla de instalar mac os (Catalina) en un Ubuntu es instalar el paquete snap sosumi. Os recomiendo mucho que echéis un vistazo a este video, ya que explica todo con cierta profundidad. Básicamente esto es lo que necesité hacer:

sudo snap install sosumi

Una vez instalado (es rápido), se puede ejecutar incluso desde el lanzador de aplicaciones buscando sosumi. La primera vez que se lanza te mostrará la pantalla de recuperación y deberás abrir el programa Disk Utility para dar formato al disco virtual (inicialmente le da una capacidad limitada, pero puedes ampliarlo antes de hacer este paso):

En Disk Utility selecciona el primer disco y dale formato con la opción Erase… Ponle el nombre que quieras (por ejemplo MacHD) y debería quedar algo así:

Luego, cierra la aplicación y ves a la opción de Reinstalar macOS… Y listo para instalar

Aceptas la licencia y seleccionas el disco para instalar y eso es todo… Tendrás una máquina con macOS catalina lista para ejecutar.

Hay algunas cosillas interesantes a hacer como cambiar la resolución de la pantalla, para eso os recomiendo que sigáis este procedimiento, o aumentar la memoria o los cores que se hace editando el archivo ~/snap/sosumi/common/launch y teniendo cuidado en no poner cosas disparatadas.

El mayor problema que me he encontrado con este método es que no he conseguido actualizarlo a la nueva versión Big Sur, por lo que su utilidad queda un poco limitada. Sin embargo, he encontrado un método (un poco rebuscado, eso si) para instalar BigSur en qemu y poder utilizar mi máquina linux para compilar con xcode… Pero eso si, os lo contaré cuando lo tenga un poco más pulido

Usando google drive desde Ubuntu

Una de las cosas a los que los linuxeros estamos acostumbrados es a que las grandes empresas nos «ninguneen» constantemente y oferten servicios multiplataforma solo para windows y mac, aunque el esfuerzo de haberlos hecho para linux pueda ser mínimo. Uno de estos productos, y que uso mucho ya que tengo cuenta de empresa desde hace más de 10 años es google drive.

 

Si accedemos a la página web para descargarnos el software de google, este nos indica que no hay cliente para nuestro sistema «todavía», y lleva diciendo esto desde hace más de cinco años, sin embargo el acceso mediante la API es realmente sencillo (yo lo uso en NoMorePass por ejemplo desde una app para móvil), por eso me extrañaba mucho esta carencia.

Pero, como siempre, la comunidad de software libre viene al rescate y ya hay algunos que han desarrollado el cliente que necesitamos. Esta es la receta para instalarlo:

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse

Una vez instalado, hay que crear el directorio donde queremos que se sincronice (por ej. ~/google-drive) y ejecutar (como usuario):

google-drive-ocamlfuse

Esto nos abrirá una ventana en el navegador para autorizar a la aplicación y darle acceso a tu cuenta, si todo va bien terminará apareciendo esta pantalla:

Y el proceso terminará con un «Access token retrieved correctly». A partir de este momento ya puedes montar la unidad con el comando:

google-drive-ocamlfuse ~/google-drive

Para desmontar el directorio basta con escribir:

fusermount -u ~/google-drive

Y eso es todo, yo lo he hecho y aparentemente funciona, ahora queda ver si es operativo o no…