ios xcode swift2 xcode7-beta3 embedded-binary

ios - Construyendo un Swift Framework con Xcode 7(Beta 3) para usar como un Binario incrustado



swift2 xcode7-beta3 (1)

Desde que se introdujeron los Binarios Embebidos en iOS 8, he querido transferir mucho de mi código común a los marcos. Decidí esperar un año antes de hacerlo y este año, con Xcode 7 Beta y iOS 9, estoy empezando a hacer eso.

Comencé un proyecto de marco Cocoa Touch en Xcode 7 y quiero compilarlo en un marco utilizable. Puedo hacer que compile mi proyecto en un .framework, pero hay algunos problemas; a saber, el marco no parece ser importable en nuevos proyectos (describiré los pasos que hice para eso en breve). Por eso, no estoy seguro si mi marco tiene símbolos visibles.

Esto es lo que hice para crear el Marco:

  1. Creé mi Framework como un Marco Cocoa Touch.
  2. Fui a las Fases de construcción de mi objetivo, fui a Encabezados y agregué todos mis archivos de Swift a la sección "Público", con la esperanza de que exportaría todos mis símbolos sin tener que marcarlos como public .
  3. Traté de archivar mi proyecto como un marco. Actualmente, parece que Xcode 7 Beta 3 tiene un error (va a informarlo más tarde hoy) en el que genera archivos de almacenamiento corruptos. Por esta razón, no pude obtener mi marco desde la ventana del Organizador. Para solucionar este problema, cambié el esquema de la acción Ejecutar en Xcode de Debug a Release, lo construí y .framework generado del .framework build/iphoneos-release de mi proyecto. Esta fue una prueba rápida, así que no necesitaba los marcos generados para los emuladores.

Y esto es lo que hice para tratar de agregar el marco a un nuevo proyecto:

  1. Creé un grupo "Frameworks" (para propósitos de organización) y arrastré el framework allí, seleccionando "yes" cuando me preguntó si quería copiar el archivo al directorio de mi proyecto.
  2. Fui a la configuración de mi destino, eliminé mi framework de "Linked Libraries" (se agregó allí automáticamente) y lo agregué a Embedded Binaries. Esto agregó el marco a las Bibliotecas Vinculadas nuevamente, así que tuve que eliminarlo de allí dos veces. Dejar el marco en bibliotecas vinculadas provoca un error del enlazador (no puedo encontrar el marco; no tengo idea de por qué, pero creo que es irrelevante para mi problema y también debo informarlo a Apple), pero una vez que lo eliminas de allí parece que compila bien cuando lo agregas a Binarios incrustados.
  3. Intenté importar mi marco en un archivo. Xcode se queja de que "no hay tal módulo".

Desafortunadamente, a pesar del hecho de que los marcos integrados han existido por alrededor de un año, no encuentro mucha escritura sobre el tema.

Así que mi pregunta es: ¿estoy creando correctamente el marco, haciendo posible que mi framework / cualquier otra cosa falle debido a un error Xcode 7 Beta? ¿O hay un procedimiento diferente para crear un marco que quiero usar como un Binario incrustado? Probablemente debería mencionar que quiero hacer que esta biblioteca sea de código abierto, y creo que distribuir un archivo .framework simple a las personas que quieran usarlo sería claro.


Tuve el mismo problema en Xcode 7. Lo resolví editando la configuración de compilación del proyecto (la que incluye el marco).

Al establecer el campo Rutas de búsqueda del Framework en $ (PROJECT_DIR) o en la ruta al directorio que contiene el archivo .framework, debe ayudar a Xcode a encontrar el módulo.