El proyecto Swift es más grande de lo que espero.

Mi proyecto tiene 4 frameworks y 31 extensiones de keyboard personalizadas (31 idiomas). Cuando compilo, toma 98 mb de memory interna del dispositivo.

Entonces decidí echar un vistazo por qué tanto. Encontré mi proyecto en la carpeta del dispositivo.

introduzca la descripción de la imagen aquí

Folder Plugins toma 38 mb y la carpeta Framework tiene 42 mb.

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

En la carpeta Frameworks se encuentran 4 my frameworks y 8 Swift's frameworks, que puedes ver en la image de arriba

introduzca la descripción de la imagen aquí

Cada uno de mis frameworks contiene los mismos frameworks de 8 Swift. ¿Puedo agregar de alguna manera estos frameworks rápidos solo una vez?

No es todo En la carpeta Complementos, se encuentran mis carpetas de extensiones de keyboard personalizadas. Tengo 200 imágenes agregadas a uno de mi module (marco), y lo referencedo en cada extensión (porque necesitan esas imágenes para build el keyboard). Pero en la carpeta del proyecto cada carpeta de extensión tiene esas imágenes. Se necesita mucha memory.

Entonces … ¿Puedo agregar imágenes una sola vez (no para cada extensión de keyboard personalizada)? ¿Y puedo agregar frameworks rápidos solo una vez (no para cada uno de mis frameworks y proyectos también)?

Editar:

Entiendo que cada extensión de keyboard personalizada es como un progtwig separado. Entonces, realmente necesitan copyr esas imágenes en cada extensión.

Parece que esto se debe a las medidas tomadas para lograr garantías de compatibilidad.

… Xcode incorpora una pequeña biblioteca de time de ejecución Swift dentro del package de la aplicación. Debido a que la biblioteca está incrustada, su aplicación utiliza una versión coherente de Swift que se ejecuta en versiones anteriores, actuales y futuras del sistema operativo.

Es interesante que lo veas en cada uno de tus frameworks. Esta statement parece sugerir que el marco no incluye las bibliotecas de time de ejecución.

Si bien se garantiza la compatibilidad con la ejecución de la aplicación, el lenguaje Swift seguirá evolucionando y la interfaz binaria también cambiará. Para estar seguro, todos los componentes de su aplicación deben buildse con la misma versión de Xcode y el comstackdor Swift para garantizar que funcionen juntos.

Fuente: Swift Blog – Compatibilidad

No estoy seguro de que tenga control sobre esto. Una buena opción sería alcanzar los devoros para ver si los creadores de Swift pueden arrojar algo más de luz.

Ahora no es necesario tener extensión por idioma, por lo que ahora no es un gran problema. Debe usar 1 extensión para todos los idiomas, o al less para el grupo de idiomas.