Junior — Middle
Je možné pripojiť a používať kód Objective-C cez Swift Package Manager?
sobes.tech AI
Odpoveď od AI
Správca balíkov Swift (SPM) je pôvodne navrhnutý na prácu so kódom v jazyku Swift a C/C++. Podpora pre Objective-C v SPM je obmedzená a nie je priama, pretože SPM nedokáže automaticky vytvárať hlavičky mostu (bridging headers) pre Objective-C.
Avšak, je možné použiť Objective-C kód v balíku Swift, ak:
- Balík obsahuje zdrojové súbory Objective-C (.m a .h).
- V súbore Package.swift sú uvedené vhodné nastavenia na zahrnutie Objective-C súborov.
- V kóde Swift sa používa modulárny import a Objective-C súbory sú správne exportované cez modul.
Príklad minimálnej konfigurácie Package.swift pre Objective-C:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyPackage",
targets: [
.target(
name: "MyPackage",
dependencies: [],
path: "Sources",
publicHeadersPath: "include"
)
]
)
V priečinku Sources/MyPackage by mali byť Objective-C súbory a hlavičky v priečinku include.
Týmto spôsobom je možné pripojiť a používať Objective-C kód cez Swift Package Manager, avšak s obmedzeniami a doplnkovou konfiguráciou. Pre zložitejšie projekty sa často používajú CocoaPods alebo Carthage, ktoré lepšie podporujú Objective-C.