Estoy usando Swift Package Manager para modularizar una gran aplicación mixta de Objective-C y Swift iOS. La aplicación también usa CocoaPods para algunas dependencias para las que no hay un paquete Swift.
La estructura de mi proyecto es la siguiente:
ios/ MyApp/ ... CorePackage/ Sources/ Core/ ...Swift stuff goes here CoreObjC/ ... Obj-C stuff goes hereCreé el siguiente Package.swift para mi CorePackage. Tenga en cuenta que estoy tratando de usar un paquete Swift de lenguaje Swift en un paquete Swift de lenguaje Objective-C:
let package = Package( name: "CorePackage", products: [ .library(name: "Core", targets: ["Core", "CoreObjC"]), ], dependencies: [ ... ], targets: [ .target( name: "Core", dependencies: [ ... ], path: "Sources/Core" ), .target( name: "CoreObjC", dependencies: [ "Core", ... ], path: "Sources/CoreObjC", publicHeadersPath: "include" ) ] )El siguiente comando de compilación funciona correctamente cuando se ejecuta en el directorio MyApp/CorePackage:
> xcodebuild -scheme "Core" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 13' buildHe agregado el paquete "Core" a mis marcos, bibliotecas y configuración general de destino de contenido incrustado.
Ahora, cuando intento crear el objetivo de la aplicación desde el directorio ios:
> xcodebuild -scheme "MyApp" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 13' -workspace MyApp.xcworkspace buildObtuve el siguiente error:
/.../ios/MyApp/CorePackage/Sources/CoreObjC/include/HeaderA.h:13:9: error: module 'Core' not found @import Core; ... /.../ios/MyApp/HeaderB.h:11:9: note: while building module 'CoreObjC' imported from /.../ios/MyApp/HeaderB.h:11: @import CoreObjC;No he tenido problemas al usar paquetes con un solo objetivo, ya sea Objective-C o Swift. ¿Alguien sabe lo que me estoy perdiendo aquí? Hasta ahora he perdido un día entero tratando de resolverlo.