我的Package.swift看起来就像
let package = Package(
name: "MyPackage",
platforms: [
.iOS(.v13)
],
products: [
.library(
name: "MyPackage",
targets: ["MyPackage"])
],
dependencies: [
.package(url: "https://github.com/SnapKit/SnapKit.git", from: "5.0.0"),
],
targets: [
.target(
name: "MyPackage",
dependencies: [
"SnapKit",
]),
.testTarget(
name: "MyPackageTests",
dependencies: ["MyPackage"])
]
)当我运行swift test时
error: the library 'MyPackage' requires macos 10.10, but depends on the product 'SnapKit' \
which requires macos 10.12; consider changing the library 'SurfUIKit' to require macos 10.12 \
or later, or the product 'SnapKit' to require macos 10.10 or earlier.为什么macos的快速运行测试没有被列为支持的平台?我能快速地运行iOS的测试吗?理想的情况是指定某个版本目标?在CLI中使用xcode有什么选择呢?
发布于 2020-12-11 18:18:53
诀窍是:
.iOS(...)只是将编译限制在一个平台上。what minimum version的行,但是您的产品将支持这个平台。它没有说:only compile for .iOS X.y,而是.iOS min version is X.y
SPM是一个用于Swift first的工具,因此希望为all~ platforms构建,并且目前还没有使用~系统参数~(我也难过)的方法。
现在,如果您只想要一个iOS包,它仍然是可能的,但是命令 (并且您不需要一个xcodeproj文件)。
// Compile and test on iOS simulator
xcodebuild -list
xcodebuild -scheme <scheme> -destination 'generic/platform=iOS'
xcodebuild -scheme <scheme> -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11'
xcodebuild -scheme <scheme> test -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11'
根据我的经验,我还可以说您可以有一个文件夹层次结构,如下所示(使用xCode 12):
| Root Project folder/
Source/ //文件夹Example/ //在其中创建xcodeprojTests/ //您的测试文件~YourPackage.xcworkspace root folder,以便能够访问包目标现在,您已经准备好了用Par等位开发包的示例和测试。
请记住,Swift软件包管理器目前(12/2020)没有任何参数只能在一个平台上构建。
希望一切都足够清楚。
https://stackoverflow.com/questions/64758546
复制相似问题