Я недавно обновил свой менеджер пакетов с Cocoapods до SPM, потому что в Xcode 11 он уже интегрирован. Все мои библиотеки уже поддерживают SPM, поэтому я попробовал. Все это прекрасно работает во время построения отладки Xcode, но в настоящее время я использую Fastlane для автоматизации процесса развертывания и тестирования, и мой пакет spm не выполняется на этапе тестирования, потому что мой пакет не поддерживает MacO, но некоторые зависимости делают, так что это как-топытается заставить меня оказать поддержку MacOS. К сожалению, сейчас я не могу этого сделать.
Есть ли у вас какие-либо идеи, если я использую spm неправильно, или это ошибка spm? RxSwift также поддерживает MacO, но spm, похоже, не имеет проблем с этим конкретным пакетом, затрагиваются только Kingfisher, RxSwiftExt и Willow.
Это ошибка:
error: the product 'Kingfisher' requires minimum platform version 10.12 for macos platform
error: the product 'RxSwiftExt' requires minimum platform version 10.11 for macos platform
error: the product 'Willow' requires minimum platform version 10.11 for macos platform
Это мой тестзаявление от fastlane / swift
swift test --build-path ./build --package-path Core --configuration debug
А это мой Package.swift
// swift-tools-version:5.1
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "Core",
platforms: [
.iOS(.v11)
],
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
.library(
name: "Core",
type: .static,
targets: ["Core"]),
],
dependencies: [
// Local Dependencies
.package(path: "../RxKingfisher"),
// Remote Dependencies
.package(url: "https://github.com/Nike-Inc/Willow.git", Package.Dependency.Requirement.branch("master")),
.package(url: "https://github.com/ReactiveX/RxSwift", .branch("master")),
.package(url: "https://github.com/Quick/Nimble", .branch("master")),
.package(url: "https://github.com/Quick/Quick", .branch("master")),
.package(url: "https://github.com/realm/realm-cocoa", .branch("master")),
.package(url: "https://github.com/RxSwiftCommunity/RxRealm", .branch("master")),
.package(url: "https://github.com/RxSwiftCommunity/Action", .branch("master")),
.package(url: "https://github.com/RxSwiftCommunity/RxSwiftExt", .branch("master")),
.package(url: "https://github.com/onevcat/Kingfisher", .branch("master")),
.package(url: "https://github.com/Swinject/Swinject", .branch("master")),
.package(url: "https://github.com/RxSwiftCommunity/RxDataSources", .branch("master")),
// We need to change to the master branch after it was merged
.package(url: "https://github.com/jrendel/SwiftKeychainWrapper", Package.Dependency.Requirement.revision("8b0da97503be8db3b008581a30fdec71046136a7"))
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "Core",
dependencies: [
// Remote
"Realm", "RealmSwift", "RxDataSources", "RxRealm", "Kingfisher", "RxSwift", "Action", "SwiftKeychainWrapper", "RxSwiftExt", "Swinject", "Willow",
// Locals
"RxKingfisher"
]),
.testTarget(
name: "CoreTests",
dependencies: ["Core", "Quick", "Nimble", "RxTest", "RxBlocking"])
]
)