Kann man Objective-C-Code über den Swift Package Manager verbinden und verwenden?
sobes.tech KI
Antwort von AI
Der Swift Package Manager (SPM) ist ursprünglich für die Arbeit mit Swift- und C/C++-Code konzipiert. Die Unterstützung für Objective-C in SPM ist begrenzt und nicht direkt, da SPM nicht automatisch Brückenköpfe (bridging headers) für Objective-C erstellen kann.
Dennoch kann Objective-C-Code in einem Swift-Paket verwendet werden, wenn:
- Das Paket Objective-C-Quellcode (.m und .h Dateien) enthält.
- In Package.swift die entsprechenden Einstellungen zum Einschluss der Objective-C-Dateien angegeben sind.
- Im Swift-Code modular importiert wird und die Objective-C-Dateien korrekt über das Modul exportiert werden.
Beispiel für eine minimale Konfiguration von Package.swift für Objective-C:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyPackage",
targets: [
.target(
name: "MyPackage",
dependencies: [],
path: "Sources",
publicHeadersPath: "include"
)
]
)
Im Ordner Sources/MyPackage sollten Objective-C-Dateien und Header im Ordner include vorhanden sein.
Auf diese Weise kann Objective-C-Code über den Swift Package Manager eingebunden und verwendet werden, allerdings mit Einschränkungen und zusätzlicher Konfiguration. Für komplexere Projekte werden häufig CocoaPods oder Carthage verwendet, die eine bessere Unterstützung für Objective-C bieten.