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.appIntente 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?