Bienvenido, me llamo Miguel y aquí les traigo otro nuevo artículo.
Índice
Cómo limpiar fácilmente las imágenes y los recursos no utilizados en sus proyectos
Las imágenes no utilizadas pueden existir como resultado de diferentes iteraciones en un proyecto. Una vez que una característica ya no se necesita y se elimina, no siempre se limpia por completo. Por lo tanto, es útil saber cómo limpiar sus activos de Xcode.
Entre las herramientas que puede usar para limpiar su proyecto son:
Desafortunadamente, muchas herramientas como Slender que solían hacer el trabajo ya no se mantienen. Por lo tanto, ¡veamos qué está funcionando hoy en día!
Para ello, voy a utilizar mi proyecto de trabajo del día a día Collect by WeTransfer . Los activos de este proyecto no se han limpiado en dos años.
Limpieza de imágenes no utilizadas con FengNiao
FengNiao es una herramienta de línea de comandos escrita principalmente en Swift. Es de código abierto y está disponible en Github. Se puede instalar clonando el repositorio y ejecutando el script de instalación:
> git clone https://github.com/onevcat/FengNiao.git > cd FengNiao > ./install.sh
Usarlo es tan simple como cambiar el directorio a la carpeta de su proyecto en la terminal y ejecutar FengNiao:
> fengniao
Primero le mostrará los resultados y luego tendrá la opción de eliminar, ignorar o enumerar los recursos no utilizados.
Searching unused file. This may take a while... 218 unused files are found. Total Size: 19.09 MB What do you want to do with them? (l)ist|(d)elete|(i)gnore
La lista de archivos mostró que también se verificaron las dependencias. Obviamente, no queremos centrarnos en ellos, ya que no los gestionamos nosotros.
1.57 KB /Users/antoinevanderlee/Documents/GIT- Projects/WeTransfer/Coyote/Submodules/Rabbit/Submodules/Alamofire/docs /docsets/Alamofire.docset/Contents/Resources/Documents/img/gh.png
Además de enumerar los activos de dependencia, la herramienta también enumera imágenes para carpetas de documentación. Por lo tanto, necesitamos ejecutar la herramienta nuevamente con algunas opciones adicionales.
Podemos listar todas las opciones disponibles usando el parámetro – help.
$ fengniao --help Usage: fengniao [options] -p, --project: Root path of your Xcode project. Default is current folder. --force: Delete the found unused files without asking. -e, --exclude: Exclude paths from search. -r, --resource-extensions: Resource file extensions need to be searched. Default is 'imageset jpg png gif' -f, --file-extensions: In which types of files we should search for resource usage. Default is 'm mm swift xib storyboard plist' --skip-proj-reference: Skip the Project file (.pbxproj) reference cleaning. By skipping it, the project file will be left untouched. You may want to skip ths step if you are trying to build multiple projects with dependency and keep .pbxproj unchanged while compiling. --version: Print version. -h, --help: Print this help message.
La opción de exclusión es la que necesitamos. Después de examinar todas las rutas enumeradas para Collect, resultó que podíamos ignorar bastantes rutas. Esto da como resultado el siguiente comando:
fengniao --exclude Carthage Pods Submodules Vendor guides fastlane
Esto le dice a la herramienta que ignore las carpetas que contienen las dependencias, así como nuestra documentación y la carpeta Fastlane. El resultado final contiene 44 recursos no utilizados para limpiar:
Para verificar que estos son activos no utilizados, elegí algunos al azar e hice una búsqueda en Xcode. Resultó que esos activos no se utilizan y podrían limpiarse.
¡Ejecutar la herramienta nuevamente demostró que funciona como se esperaba!
$ fengniao --exclude Carthage Pods Submodules Vendor guides fastlane Searching unused file. This may take a while... 😎 Hu, you have no unused resources in path: /Users/ antoinevanderlee/Documents/GIT-Projects/WeTransfer/Coyote.
Limpieza de imágenes no utilizadas mediante LSUnusedResources
LSUnusedResources es una aplicación para Mac que hace exactamente lo mismo que FengNiao: limpiar imágenes y recursos no utilizados. También es de código abierto, pero ya no se mantiene. En el momento de escribir este artículo, el último compromiso ya se remonta a hace un año. Sin embargo, todavía funciona y, por lo tanto, vale la pena intentarlo.
El ejecutable se puede descargar desde la página de Github. Puede indicarle que no es seguro abrir. Si es así, puede usar Control + Abrir para abrirlo. Después de ejecutarlo con la configuración predeterminada, muestra casi los mismos resultados que FengNiao:
Al igual que hicimos con FengNiao, ahora deberíamos ejecutarlo nuevamente con las carpetas excluidas. Tenemos que completar el Sufijo de recursos separando las carpetas con un símbolo de tubería:
Carthage|Pods|Submodules|Vendor|guides|fastlane
Los resultados:
Total: 106, unused: 21, time: 1.53s, size: 328.92
Todos estos son activos no utilizados y se pueden eliminar fácilmente con el botón Eliminar de la aplicación.
Comparación de los resultados: ¿FengNiao o LSUnusedResources?
La comparación de los dos resultados muestra algunas grandes diferencias:
FengNiao: 44 unused files / Total Size: 440.06 KB LSUnusedResources: 21 unused files / Total Size: 328.92 KB
Al principio, esto parece estar relacionado principalmente con los dos objetivos de extensión que tenemos en Coyote. FengNiao los está verificando correctamente, pero LSUnusedResources parece ignorarlos.
Para estar completamente seguro, creé una rama para cada herramienta y comparé los cambios. Esto confirmó que FengNiao hizo un mejor trabajo y encontró más recursos no utilizados.
¿Es siempre seguro limpiar esas imágenes no utilizadas?
¡Definitivamente no! Es una buena idea repasar los activos antes de eliminarlos. Hay un ejemplo común de activos que se utilizan pero que aún se enumeran como no utilizados. Esto es cuando crea una referencia a un recurso en función de ciertas condiciones.
Por ejemplo, en Coyote estamos usando el siguiente código:
UIImage(named: "\(iconName)\(iconSize.sizeString)")
Resultó que todas esas imágenes se enumeraron en ambos resultados y, por lo tanto, es necesario repasar los resultados manualmente antes de eliminar las imágenes.
Bono: limpie sus archivos de desarrollador de Xcode
Como ya está en la limpieza, ¿qué tal limpiar también sus archivos de desarrollador de Xcode?
Existe una gran herramienta llamada DevCleaner que eliminará fácilmente hasta 20 GB de datos no utilizados. Así es como me pareció después de ejecutarlo por primera vez:
Sepa que esta aplicación eliminará todas sus versiones antiguas de iOS de forma predeterminada. Por ejemplo, en mi caso, seleccionó todos los archivos de soporte para dispositivos iOS 11 y 12, dejándome con soporte para dispositivos solo para iOS 13. Obviamente, esto no es lo que quieres. Por lo tanto, revise la selección y ajústela a sus necesidades.
Conclusión
Definitivamente vale la pena intentar limpiar su proyecto para eliminar las imágenes no utilizadas. Mantendrá su proyecto limpio y libre de activos que ya no utilice. Esté atento y revise los resultados manualmente antes de eliminarlos.
Se aceptan comentarios.
Añadir comentario