Ios 从CLI运行swift测试时,是否可以指定平台目标?
我的Ios 从CLI运行swift测试时,是否可以指定平台目标?,ios,unit-testing,swift-package-manager,Ios,Unit Testing,Swift Package Manager,我的Package.swift看起来像 let package = Package( name: "MyPackage", platforms: [ .iOS(.v13) ], products: [ .library( name: "MyPackage", targets: ["MyPackage"]) ], dependencies: [ .package(ur
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测试时
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.
为什么swift为macos运行的测试没有被列为受支持的平台?我能让swift为iOS运行测试吗,最好指定一些版本目标?在CLI中使用xcode有什么选择?诀窍是:
- 您认为
是为了将编译限制在一个平台上.iOS(…)
- 虽然它实际上是一条用于精确计算
您的产品在该平台上支持的最低版本的线
只编译.iOS X.y
,而是说.iOS最小版本是X.y
SPM是Swift first的一个工具,因此想要为所有平台
构建,目前无法使用~system only参数(我也知道我是sad)
现在,如果您想拥有一个仅限iOS的软件包,这仍然是可能的,但是(您不需要xcodeproj文件)
//在iOS模拟器上编译和测试
xcodebuild-列表
xcodebuild-scheme-destination'generic/platform=iOS'
xcodebuild-scheme-sdk-iphonesimulator-destination'platform=iOS模拟器,name=iphone11'
xcodebuild-scheme test-sdk iphonesimulator-destination'platform=iOS模拟器,name=iphone11'
根据我的经验,我还想说,您可以有如下文件夹层次结构(使用xCode 12): |
根项目文件夹/
//源文件的文件夹Source/
//在其中创建一个xcodeprojExample/
测试///code>//您的测试文件~
YourPackage.xcworkspace
- 在其中添加
,以便访问您的软件包目标根文件夹
- 添加示例项目(并将包添加到其依赖项)
- 最后创建一个新方案,在该方案中选择包的测试目标
- 在其中添加
希望它足够清楚。谢谢,
平台
并不意味着一个人想要支持的平台列表,这真是一个令人沮丧的问题……是的,我同意你的观点,而且不仅仅是一个令人沮丧的问题,这是一个错误的东西。。有多少人真的采取了相同的方式:/(顺便说一句,如果它回答了这个问题,请随意标记它已完成o/)