Cap*_*rmi 6 xcode swift swift-package-manager
我使用的 Swift Package Manager 没有与之关联的 xcodeproject 文件,并且在通过终端构建时出现错误。当我调用该swift build命令时,我收到一条错误消息,指出 MacOS 构建失败。我正在构建的包不支持 MacOS(它使用 UIKit),但只支持 iOS。我想不出一种方法来调用命令来只指定构建是针对 iOS 的。我已经谷歌搜索了,但没有运气。如果存在从终端为 iOS 构建 SPM 包,有人知道正确的语法吗?
我使用的 Swift 版本是:“Apple Swift 版本 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)”
我已经在 Package.swift 文件中指定了平台
let package = Package(
name: "Package",
platforms: [.iOS(.v10), ],
products: [
...
Run Code Online (Sandbox Code Playgroud)
我在 github https://github.com/mike011/Swift-Package-Manager-Example上创建了一个示例项目。当我运行swift build它失败
/git/Swift-Package-Manager-Example/Sources/Swift-Package-Manager-Example/iOSSpecificFile.swift:9:8: error: no such module 'UIKit'
import UIKit
^
/git/Swift-Package-Manager-Example/Sources/Swift-Package-Manager-Example/iOSSpecificFile.swift:9:8: error: no such module 'UIKit'
import UIKit
^
我通过将所有文件包装在#if !os(macOS) #endif块中“解决”了这个问题。因此该软件包是在 Mac 上构建的,但它没有任何内容。
SwiftPM 目前没有办法禁止针对特定平台进行构建,但如果您愿意,可以利用最低构建版本在您不支持的平台上导致编译时错误。
例如,如果您不想允许在 macOS 上构建,您可以.macOS("99.0")在platforms清单的您的部分中使用平台版本:在 Xcode 中构建时,您将收到与此类似的编译警告和错误:
The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 99.0, but the range of supported deployment target versions is 10.8 to 10.16.99
Invalid Darwin version number: macos99.0
Invalid version number in 'target x86_64-apple-macos99.0'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |