Sobes.tech
Junior — Middle

Kas saab Objective-C koodi ühendada ja kasutada Swift Package Manageri kaudu?

sobes.tech AI

Vastus AI-lt

Swift Package Manager (SPM) algselt on mõeldud töötama Swift ja C/C++ koodiga. SPM-i Objective-C tugi on piiratud ja mitte otse, kuna SPM ei suuda automaatselt luua Objective-C jaoks bridging headers (sildpealkirju).

Kuid, Objective-C koodi saab kasutada Swift paketis, kui:

  • Pakett sisaldab Objective-C lähtekoodifaile (.m ja .h).
  • Package.swift failis on määratud sobivad sätted Objective-C failide kaasamiseks.
  • Swift koodis kasutatakse modulaarset importi ning Objective-C failid eksporditakse õigesti mooduli kaudu.

Minimaalne konfiguratsioon näide — 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 kaustas peaksid olema Objective-C failid ja päisefailid kaustas include.

Selle meetodiga saab Objective-C koodi ühendada ja kasutada Swift Package Manageri kaudu, kuid piirangutega ja täiendava konfiguratsiooniga. Suuremate projektide jaoks kasutatakse sageli CocoaPods või Carthage, mis paremini toetavad Objective-C.