gpt4 book ai didi

ios - 从 CLI 运行 swift 测试时,我可以指定平台目标吗?

转载 作者:行者123 更新时间:2023-12-04 01:11:19 24 4
gpt4 key购买 nike

我的 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 进行 swift 运行测试?我可以快速运行 iOS 测试,理想情况下指定一些版本目标吗?在 CLI 中使用 xcode 有什么替代方法?

最佳答案

诀窍是:

  • 你认为.iOS(...)是为了将编译限制在一个平台上
  • 虽然它实际上是用于精确的线what minimum version您的产品将为此平台提供支持

  • 它没有说: only compile for .iOS X.y ,但是 .iOS min version is X.ySPM 是 Swift first 的工具,因此想为 all~ platforms 建立,并且目前无法使用 ~system only 参数~(我也知道我很伤心)。

    现在,如果你想拥有一个仅限 iOS 的包,它仍然是可能的,但 you'll have to compil through xcodebuild commands (并且您不需要 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'
    SPM documentation usage about "Depending on Apple modules"

    根据我的经验,我还会说您可以拥有如下的文件夹层次结构(使用 xCode 12):
    | Root Project folder/
  • Source///源文件夹
  • Example///在其中创建一个 xcodeproj
  • Tests///你的测试文件 ~
  • YourPackage.xcworkspace
  • 添加 root folder在它能够访问您的包目标
  • 添加您的示例项目(并将您的包添加到其依赖项中)
  • 最后创建一个 新方案您在其中选择 测试目标 您的包裹


  • 现在,您已准备好与示例和测试并行开发您的包。
    请记住,Swift 包管理器当前 (12/2020) 没有仅在一个平台上构建的参数。
    希望它足够清楚。

    关于ios - 从 CLI 运行 swift 测试时,我可以指定平台目标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64758546/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com