Junior — Middle
Може ли се код на Objective-C повезати и користити преко Swift Package Manager?
sobes.tech АИ
Одговор од АИ
Swift Package Manager (SPM) je prvobitno namenjen za rad sa kodom u Swift-u i C/C++. Podrška za Objective-C u SPM je ograničena i nije direktna, jer SPM ne može automatski da kreira zaglavlja mosta (bridging headers) za Objective-C.
Međutim, može se koristiti Objective-C kod u Swift paketu ako:
- Paket sadrži izvore Objective-C (.m i .h fajlove).
- U Package.swift su navedene odgovarajuće konfiguracije za uključivanje Objective-C fajlova.
- U Swift kodu se koristi modularni uvoz, a Objective-C fajlovi se pravilno eksportuju putem modula.
Primer minimalne konfiguracije Package.swift za Objective-C:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyPackage",
targets: [
.target(
name: "MyPackage",
dependencies: [],
path: "Sources",
publicHeadersPath: "include"
)
]
)
U folderu Sources/MyPackage treba da budu Objective-C fajlovi i zaglavlja u folderu include.
Na ovaj način, Objective-C kod može biti povezan i korišćen putem Swift Package Manager-a, ali sa ograničenjima i dodatnom konfiguracijom. Za složenije projekte često se koriste CocoaPods ili Carthage, koji bolje podržavaju Objective-C.