Junior — Middle
Kun je Objective-C-code verbinden en gebruiken via Swift Package Manager?
sobes.tech AI
Antwoord van AI
Swift Package Manager (SPM) is oorspronkelijk ontworpen om te werken met Swift- en C/C++-code. Ondersteuning voor Objective-C in SPM is beperkt en niet direct, omdat SPM niet automatisch bridging headers voor Objective-C kan maken.
Echter, je kunt Objective-C-code gebruiken in een Swift Package als:
- De package Objective-C bronbestanden bevat (.m en .h).
- In Package.swift de juiste instellingen zijn gespecificeerd om Objective-C-bestanden op te nemen.
- In Swift-code modulair geïmporteerd wordt en de Objective-C-bestanden correct worden geëxporteerd via de module.
Voorbeeld van minimale configuratie van Package.swift voor Objective-C:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyPackage",
targets: [
.target(
name: "MyPackage",
dependencies: [],
path: "Sources",
publicHeadersPath: "include"
)
]
)
In de map Sources/MyPackage moeten Objective-C-bestanden en headers in de map include staan.
Zo kan Objective-C-code worden gekoppeld en gebruikt via Swift Package Manager, maar met beperkingen en extra configuratie. Voor complexere projecten worden vaak CocoaPods of Carthage gebruikt, die betere ondersteuning bieden voor Objective-C.