Cómo limpiar la caché de Swift Package Manager

Cuando trabajamos con Swift Package Manager, es común que tengamos que limpiar la caché, porque Xcode no está refrescando los directorios con las últimas versiones de los archivos.

Esto ocurre muchas veces cuando nuestras dependencias son paquetes a los cuales apuntamos usando una rama de git, por ejemplo:

Agregando una dependencia en nuestro manifiesto usando:

.package(
url: "https://repo-url.com",
.branch("master")
)

O directamente en un proyecto de Xcode:

Panel package dependencies de un proyecto de Xcode

Para resolver problemas relacionados a la caché tenemos dos opciones:

  • Usar la opción Reset Package Caches de Xcode.
  • Borrar toda la cache en nuestro equipo manualmente.

Opción cero

Antes de explicar las dos opciones mencionadas anteriormente, es bueno señalar la opción cero. Esta consiste en cerrar y abrir Xcode. Muchas veces, esto resuelve el problema, por lo que no está de más intentarlo.

¿Has intento apagarla y prenderla de nuevo?

Usar la opción Reset Packages Caches de Xcode

Esto se logra damos click derecho en Xcode y seleccionando la opción Reset Packages Caches:

Reseteando la caché desde Xcode

Borrar toda la caché en nuestro equipo manualmente

Esto, por lo general funciona, pero no siempre. Cuando veamos que no resulta podemos usar el siguiente script:

rm -rf ~/Library/org.swift.swiftpm
rm -rf ~/Library/Caches/org.swift.swiftpm

Estos dos directorios alojan datos de nuestros paquetes para ayudarnos a obtener versiones cacheadas y así agilizar el proceso de compilación. Sin embargo, si la versión cacheada no es la que necesitamos, podemos enfrentarnos a un caso donde Xcode nunca actualiza los archivos propiamente.

Es importante tomar en cuenta que correr estos scripts borra toda la data cacheada, así que si tenemos otros paquetes en otros proyectos que si funcionaban correctamente, puede que esto provoque que la próxima vez que abramos el proyecto sea un poco más lento, porque Swift Package Manager necesitará resolver las dependencias desde cero.

Una tercera opción

Una tercera solución, si la naturaleza del proyecto lo permite, es empezar a usar versionado en nuestros paquetes y establecer una estrategia donde generemos nuevas versiones frecuentemente. Ya esto va más relacionado a como decida trabajar el equipo.

Notas

Limpiar la caché también puede ayudarnos a resolver otros problemas relacionados con credenciales de seguridad que fallan sin ninguna razón aparente o conflictos en resolución de dependencias que no hacen sentido.

Comparte este artículo

Subscríbete a nuestro Newsletter

Mantente al día en el mundo de las aplicaciones móviles con nuestro blog especializado.

Artículos semanales

Todas las semanas artículos nuevos sobre el mundo de las aplicaciones móviles.

No spam

No te enviaremos spam, solo contenido de calidad. Puedes darte de baja cuando quieras.

Contenido de calidad

Nada de contenido generado de manera automática usando ChatGPT.

Recomendaciones

Tips indispensables sobre mejores prácticas y metodologías.

© 2024 AsyncLearn