Sobes.tech
Junior — Middle

Csatlakoztatható és használható Objective-C kód a Swift Package Manager segítségével?

sobes.tech MI

Válasz az MI-től

A Swift Package Manager (SPM) eredetileg Swift és C/C++ kód kezelésére készült. Az Objective-C támogatás az SPM-ben korlátozott és nem közvetlen, mivel az SPM nem képes automatikusan létrehozni a bridging headers-t (hidatartó fejléc) Objective-C-hez.

Azonban, Objective-C kód használható egy Swift csomagban, ha:

  • A csomag tartalmaz Objective-C forrásfájlokat (.m és .h).
  • A Package.swift fájlban megfelelő beállítások vannak az Objective-C fájlok beillesztéséhez.
  • A Swift kódban moduláris import van, és az Objective-C fájlokat helyesen exportálják a modulon keresztül.

Minimális konfiguráció példája a Package.swift-hez Objective-C esetén:

// swift-tools-version:5.3
import PackageDescription

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

A Sources/MyPackage mappában Objective-C fájlok és a include mappában fejlécfájlok legyenek.

Így Objective-C kódot a Swift Package Manager segítségével csatlakoztathat és használhat, de korlátozásokkal és kiegészítő konfigurációval. Komplexebb projektekhez gyakran használják a CocoaPods vagy Carthage csomagkezelőket, amelyek jobban támogatják az Objective-C-t.