Sobes.tech
Junior — Middle

Lze připojit a používat kód Objective-C přes Swift Package Manager?

sobes.tech AI

Odpověď od AI

Správce balíčků Swift (SPM) je původně navržen pro práci se kódem v jazyce Swift a C/C++. Podpora Objective-C v SPM je omezená a není přímá, protože SPM neumí automaticky vytvářet hlavičky mostu (bridging headers) pro Objective-C.

Nicméně, je možné použít Objective-C kód v balíčku Swift, pokud:

  • Balíček obsahuje zdrojové soubory Objective-C (.m a .h).
  • V souboru Package.swift jsou uvedena odpovídající nastavení pro zahrnutí Objective-C souborů.
  • V kódu Swift je použit modulární import a Objective-C soubory jsou správně exportovány přes modul.

Příklad minimální konfigurace Package.swift pro Objective-C:

// swift-tools-version:5.3
import PackageDescription

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

Ve složce Sources/MyPackage by měly být Objective-C soubory a hlavičky ve složce include.

Tímto způsobem lze připojit a používat Objective-C kód přes Swift Package Manager, ale s omezeními a dodatečnou konfigurací. Pro složitější projekty se často používají CocoaPods nebo Carthage, které lépe podporují Objective-C.