Czy można podłączyć i używać kodu Objective-C za pomocą Swift Package Manager?
sobes.tech AI
Odpowiedź od AI
Swift Package Manager (SPM) jest początkowo zaprojektowany do pracy z kodem Swift i C/C++. Obsługa Objective-C w SPM jest ograniczona i nie jest bezpośrednia, ponieważ SPM nie potrafi automatycznie tworzyć nagłówków mostkowych (bridging headers) dla Objective-C.
Jednak można używać kodu Objective-C w pakiecie Swift, jeśli:
- Pakiet zawiera pliki źródłowe Objective-C (.m i .h).
- W Package.swift podano odpowiednie ustawienia do dołączenia plików Objective-C.
- W kodzie Swift używa się importu modułowego, a pliki Objective-C są poprawnie eksportowane przez moduł.
Przykład minimalnej konfiguracji Package.swift dla Objective-C:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyPackage",
targets: [
.target(
name: "MyPackage",
dependencies: [],
path: "Sources",
publicHeadersPath: "include"
)
]
)
W folderze Sources/MyPackage powinny znajdować się pliki Objective-C i nagłówki w folderze include.
W ten sposób można podłączyć i używać kodu Objective-C za pomocą Swift Package Manager, choć z ograniczeniami i dodatkowymi ustawieniami. Dla bardziej złożonych projektów często używa się CocoaPods lub Carthage, które lepiej obsługują Objective-C.