Sobes.tech
Junior — Middle

É possível conectar e usar código Objective-C através do Swift Package Manager?

sobes.tech IA

Resposta da IA

O Swift Package Manager (SPM) foi inicialmente projetado para trabalhar com código em Swift e C/C++. O suporte ao Objective-C no SPM é limitado e não direto, pois o SPM não consegue criar automaticamente cabeçalhos de ponte (bridging headers) para Objective-C.

No entanto, é possível usar código Objective-C em um pacote Swift se:

  • O pacote contiver arquivos fonte Objective-C (.m e .h).
  • No Package.swift, forem especificadas as configurações adequadas para incluir arquivos Objective-C.
  • No código Swift, usar importação modular, e os arquivos Objective-C serem exportados corretamente através do módulo.

Exemplo de configuração mínima do 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"
        )
    ]
)

Na pasta Sources/MyPackage, devem estar arquivos Objective-C e cabeçalhos na pasta include.

Dessa forma, é possível conectar e usar código Objective-C através do Swift Package Manager, embora com limitações e configurações adicionais. Para projetos mais complexos, costuma-se usar CocoaPods ou Carthage, que oferecem melhor suporte ao Objective-C.