Sobes.tech
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.