Sobes.tech
Junior — Middle

¿Se puede conectar y usar código en Objective-C a través de Swift Package Manager?

sobes.tech AI

Respuesta de la IA

El Gestor de Paquetes de Swift (SPM) está inicialmente orientado a trabajar con código en Swift y C/C++. El soporte para Objective-C en SPM es limitado y no es directo, ya que SPM no puede crear automáticamente encabezados de puente (bridging headers) para Objective-C.

Sin embargo, se puede usar código Objective-C en un paquete Swift si:

  • El paquete contiene archivos fuente Objective-C (.m y .h).
  • En Package.swift se especifican las configuraciones correspondientes para incluir archivos Objective-C.
  • En el código Swift se usa importación modular, y los archivos Objective-C se exportan correctamente a través del módulo.

Ejemplo de configuración mínima de Package.swift para Objective-C:

// swift-tools-version:5.3
import PackageDescription

let package = Package(
    name: "MyPackage",
    targets: [
        .target(
            name: "MyPackage",
            dependencies: [],
            path: "Sources",
            publicHeadersPath: "include"
        )
    ]
)

En la carpeta Sources/MyPackage deben estar los archivos Objective-C y los encabezados en la carpeta include.

De esta forma, se puede conectar y usar código Objective-C a través de Swift Package Manager, aunque con limitaciones y configuraciones adicionales. Para proyectos más complejos, a menudo se utilizan CocoaPods o Carthage, que ofrecen mejor soporte para Objective-C.