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.