Cómo usar Swift App + (Swift Framework + Objective C static Framework) sin advertencias

Lo que estoy tratando de hacer:

Crear un marco dinámico rápido: diga SwiftDemo.frameworkSwift.framework depende de un marco estático externo de Objective-C (sin código fuente disponible): diga ObjCDemo.framework. Este marco tiene su archivo de módulo y se coloca dentro de ObjCDemo.framework / Modules / module.modulemapColoque este SwiftDemo.framework dentro de una aplicación Swift. Idealmente, me gustaría que mi aplicación Swift pueda usar SwiftDemo.framework y ObjCDemo.framework sin ningún error o advertencia.

Lo que he intentado:

Crear un marco dinámico rápido SwiftDemo.framework

ObjCDemo.framework agregado en"Marcos vinculados y bibliotecas". Coloque la ruta ObjCDemo.frameworks en "Rutas de búsqueda de marco" si no se agrega automáticamente. Acceda a ObjCDemo.framework usando"importar ObjCDemo". Construye el SwiftDemo.framework. Se construye bien, sin error, sin advertencia

Crea una aplicación SwiftDemo.

Agregue SwiftDemo.framework en"Binarios incrustados" sección.

Intente compilar SwiftDemo.app, a continuación se muestra el error:

ld: framework no encontrado ObjCDemo para arquitectura x86_64

Obviamente SwiftDemo.app no puede encontrar el ObjCDemo.framework que es usado por SwiftDemo.framework, así que lo siguiente que hice fue:

ObjCDemo.framework agregado en"Marcos vinculados y bibliotecas" y en consecuencia establecer el"Rutas de búsqueda de marcos" del objetivo SwiftDemo.app

Intente compilar SwiftDemo.app, no hay error, pero esta es la advertencia de consola que obtengo para cada archivo en ObjCDemo.framework:

objc [15127]: la clase se implementa en / Users / tarun / Library / Developer / CoreSimulator / Devices / 4391A259-64DF-4893-BE09-31B5D2D5BC8C / data / Containers / Bundle / Application / CD896A7B-1868-44D1-BFEA-6CC081AD41DB /SwiftDemo.app/Frameworks/SwiftDemo.framework/Swift y / Users / tarun / Library / Developer / CoreSimulator / Devices / 4391A259-64DF-4893-BE09-31B5D2D5BC8C / data / Containers / Bundle / Application / CD896A7B-1868-44D1 BFEA-6CC081AD41DB / SwiftDemo.app / SwiftDemo. Uno de los dos será usado. Cuál no está definido.

Obviamente, estos archivos están duplicados en SwiftDemo.framework y SwiftDemo.app, así que para evitar lo siguiente hice:

Eliminar el formulario ObjCDemo.framework"Marcos vinculados y bibliotecas" del objetivo SwiftDemo.app pero mantener"Rutas de búsqueda de marcos" Todavía apunta a la ruta ObjCDemo.framework.

Intente compilar SwiftDemo.app, no hay error, pero esta es la advertencia de tiempo de compilación:

ld: advertencia: Auto-Linking suministrado '... / SwiftDemo / ObjCDemo.framework / ObjCDemo', opción de enlace de marco en .... / SwiftDemo / ObjCDemo.framework / ObjCDemo no es un dylib

No importa lo que no pude hacer pasar estos errores o advertencias. ¿Alguien tiene alguna solución para esto?

Respuestas a la pregunta(0)

Su respuesta a la pregunta