Back to questions
Junior — Middle
70
Можно ли подключать и использовать код на Objective-C через Swift Package Manager?
Companies where asked
Мидлэнд
Answer from AI
sobes.tech AI
Swift Package Manager (SPM) изначально ориентирован на работу с кодом на Swift и C/C++. Поддержка Objective-C в SPM ограничена и не является прямой, так как SPM не умеет автоматически создавать заголовочные мосты (bridging headers) для Objective-C.
Тем не менее, можно использовать Objective-C код в Swift Package, если:
- В пакете есть исходники Objective-C (.m и .h файлы).
- В Package.swift указаны соответствующие настройки для включения Objective-C файлов.
- В Swift коде используется модульный импорт, а Objective-C файлы правильно экспортируются через модуль.
Пример минимальной настройки 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 должны быть Objective-C файлы и заголовки в папке include.
Таким образом, подключать и использовать Objective-C код через Swift Package Manager можно, но с ограничениями и дополнительной настройкой. Для более сложных проектов часто используют CocoaPods или Carthage, которые лучше поддерживают Objective-C.