首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在从CLI运行快速测试时指定平台目标吗?

可以在从CLI运行快速测试时指定平台目标吗?
EN

Stack Overflow用户
提问于 2020-11-09 20:07:27
回答 1查看 1.6K关注 0票数 8

我的Package.swift看起来就像

代码语言:javascript
复制
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

代码语言:javascript
复制
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有什么选择呢?

EN

回答 1

Stack Overflow用户

发布于 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'

关于“取决于苹果模块”的SPM文档用法

根据我的经验,我还可以说您可以有一个文件夹层次结构,如下所示(使用xCode 12):

| Root Project folder/

  • 源的Source/ //文件夹
  • Example/ //在其中创建xcodeproj
  • Tests/ //您的测试文件~
  • YourPackage.xcworkspace
    • 在其中添加root folder,以便能够访问包目标
    • 添加示例项目(并将包添加到其依赖项中)
    • 最后,创建一个新方案,其中选择包的测试目标

现在,您已经准备好了用Par等位开发包的示例和测试。

请记住,Swift软件包管理器目前(12/2020)没有任何参数只能在一个平台上构建。

希望一切都足够清楚。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64758546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档