ios - 如何测试使用 UIKit 的 Swift 包?

标签 ios uikit xctest swift-package-manager

我最近创建了我的第一个 Swift 包。它目前仅在 iOS 中使用,如果它用于其他任何地方,它可能会在 tvOS 上,但就是这样。
我在使用 UIKit 时遇到了麻烦。我在这里看到了这个注释,这确实帮助解决了我的问题:
https://stackoverflow.com/a/58684636/1435520
我使用的(上面提到的)命令是这样的:

swift build -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios13.0-simulator"
但是,我真的很想进行单元测试。运行 swift test...使用与 swift build 相同的参数.但这给了我一个新的错误:error: module 'XCTest' was created for incompatible target x86_64-apple-macos10.14所以,我想我只是想知道是否有可能做到这一点。就像,我怎么能创建一个使用 UIKit 的 Swift 包,并让它可测试?

最佳答案

我一直在使用命令 xcodebuild如详细 in this forum post ,这要求您还生成一个 .xcodeproj :

swift package generate-xcodeproj
xcodebuild build -sdk iphoneos -scheme 'MyPackage-Package'
xcodebuild test -destination 'name=iPhone 11' -scheme 'MyPackage-Package'
但是,如果您使用的是 SPM 资源,则会遇到我在此处详述的问题:https://bugs.swift.org/browse/SR-13773

关于ios - 如何测试使用 UIKit 的 Swift 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63765408/

相关文章:

ios - 合并:将闭包转换为发布者

ios - 渐进式加载 subview 以加快 iOS 应用程序性能

IOS:使用dispatch_async的单元测试未执行

xcode - 本地化未加载到XCTest中吗?

ios - Xcode Scheme 默认位置在测试中被忽略

ios - 按键值对 Swift 字典数组进行排序

javascript - Cordova - iOS 嵌套元素禁用反弹但保持速度滚动

ios - 同时运行两个定时器

objective-c - performSelectorOnMainThread : and dispatch_async() on main queue? 有什么区别

iphone - 重叠 UITableViewCell 内容 View