我最近创建了我的第一个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 build
的参数运行swift test...
,但是这给了我一个新的错误:error: module 'XCTest' was created for incompatible target x86_64-apple-macos10.14
所以,我想我只是想知道是否有可能做到这一点。比如,我如何创建一个Swift包,使用UIKit,并让它可测试?
3条答案
按热度按时间ddrv8njm1#
我一直在使用
xcodebuild
命令作为详细的in this forum post,它还要求您生成一个.xcodeproj
:但是如果您使用SPM资源,您将遇到我在这里详细介绍的问题:https://bugs.swift.org/browse/SR-13773
0x6upsns2#
我花了很多时间尝试运行一些复杂框架的测试,但没有一个解决方案对我有效。
我发现
generate-xcodeproj
被标记为弃用。原因我已经找到了here。“...从Xcode 11开始,Xcode直接支持打开和构建包...”
因此,我直接在包文件夹中运行
xcodebuild test
,而不创建xcodeproj。它已经奏效了。
lmvvr0a83#
我试图在CI上构建和测试我的内部包,但没有任何效果,并且生成
xcodeproj
将在未来被弃用。对我来说,有效的方法是只指定目标为macOS 10.15,不做任何其他操作: