reality framework developer augmented apple ios ios8 frameworks xcode6

framework - swift ios documentation



Cómo construir un marco de iOS con XCode 6 (1)

Sé de tutoriales familiares sobre esto, pero la introducción de la plantilla de framework XCode 6 ha cambiado el juego.

Ya vi el video de la WWDC 2014 sobre la construcción de marcos modernos, pero se trata más sobre la construcción de extensiones, framework y aplicaciones, todo dentro de un solo proyecto. No especifica si el marco que hago con él es verdaderamente reutilizable en cualquier proyecto.

Estoy construyendo el marco del modo XCode 6 (Archivo-> Nuevo proyecto-> Framework y Library-> Cocoa Touch Framework), pero cuando lo importo dentro de mi proyecto de aplicación de prueba (separado del proyecto de framework) sigo recibiendo varios errores.

Ejemplo: incluir un encabezado no modular dentro del marco, y así sucesivamente.

Sé que esto no es lo que dice, y faltan algunos pasos en lo que sea que esté haciendo. Los trucos más antiguos pueden haber funcionado para todos, pero simplemente no encuentro qué camino seguir después de XCode 6.

Por ejemplo, hay una cierta estructura de carpetas que necesita una infraestructura, pero XCode 6 no cumple con ella mientras la construye. ¿Es correcto? Si no, ¿cómo puedo cambiar la forma en que XCode construye la jerarquía de carpetas de marcos?

¿Vuelvo a la escuela vieja o me estoy jodiendo algo pequeño en XCode 6 que no puedo crear un marco reutilizable?


No estoy seguro de si está intentando construir un marco con Objective-C o Swift ya que su pregunta no lo indica. He encontrado errores que mencionas con Swift, así que te daré mi método para construir marcos Swift.

Descubrí que el proceso de Objective-C es muy sencillo y está bien documentado, así que me saltearé esto.

En cuanto a Swift, hay algunas cosas que considerar. En primer lugar, las bibliotecas estáticas de Swift no son compatibles, por lo que debe utilizar exclusivamente un marco (también conocido como biblioteca dinámica) al vincular una aplicación a una biblioteca.

Estos son los pasos:

  1. Cree el Framework usando New> Project en IOS> Framework & Library, seleccione Cocoa Touch Framework

  2. Para evitar el "ld: advertencia: directorio no encontrado para la opción ..." vaya a las Rutas de búsqueda de bibliotecas en Configuraciones de compilación para su destino y elimine las rutas.

  3. No puede mezclar Objective-C con Swift, así que no considere agregar el archivo de puente Swift-Header en su código.

  4. Hay algunos casos rápidos donde necesita importar código de Frameworks no expuestos. He utilizado con éxito el mapa de módulos dentro del marco para tratar estos casos.

  5. También selecciono CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES en la Configuración de compilación para resolver ''incluir un encabezado no modular dentro del módulo de marco''. Eso parece funcionar

  6. Me aseguro de que el archivo de encabezado que se genera se marque como Público (no Proyecto). Haga clic en el archivo y verá la selección en el inspector en ''Membresía de destino''

Puede encontrarse con algunos mensajes de error extraños al compilar. Xcode tiene una tendencia a informar errores de vinculador cuando el código no se puede compilar correctamente, lo que da como resultado archivos faltantes que el vinculador necesita para generar sus binarios. En ocasiones, XCode no mostrará los errores en los archivos que está compilando y deberá ir manualmente a la salida de compilación y volver a los archivos. En otro momento, obtendrá un problema donde necesita eliminar el caché. Esos problemas los llamo XCode blues y los trato constantemente. Descubrí que este tipo de problemas ocurren más a menudo cuando se crean bibliotecas. El resto debería funcionar como se espera.