Sobes.tech
Junior — Middle

Vai ir iespējams pievienot un izmantot Objective-C kodu, izmantojot Swift Package Manager?

sobes.tech AI

Atbilde no AI

Swift Package Manager (SPM) sākotnēji ir paredzēts darbam ar Swift un C/C++ kodu. SPM atbalsts Objective-C ir ierobežots un nav tiešs, jo SPM nevar automātiski izveidot bridge headers (tilta galvenes) Objective-C.

Tomēr, Objective-C kodu var izmantot Swift paketē, ja:

  • Pakete satur Objective-C avota failus (.m un .h).
  • Package.swift ir norādītas atbilstošas konfigurācijas Objective-C failu iekļaušanai.
  • Swift kodā tiek izmantots modulārs imports, un Objective-C faili tiek pareizi eksportēti caur moduli.

Minimālas konfigurācijas piemērs — Package.swift Objective-C:

// swift-tools-version:5.3
import PackageDescription

let package = Package(
    name: "MyPackage",
    targets: [
        .target(
            name: "MyPackage",
            dependencies: [],
            path: "Sources",
            publicHeadersPath: "include"
        )
    ]
)

Sources/MyPackage mapē jābūt Objective-C failiem un galvenes failiem mapē include.

Šādā veidā Objective-C kods var tikt pievienots un izmantots ar Swift Package Manager, taču ar ierobežojumiem un papildu konfigurāciju. Lielākiem projektiem bieži izmanto CocoaPods vai Carthage, kas labāk atbalsta Objective-C.