You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift代码单独编译正常,打包为XCode Swift Package时遇版本错误及公开化问题

问题一:Swift Package版本兼容错误解决方案

出现“'Path'仅在macOS 10.15或更高版本可用”错误,是因为Swift Package默认的目标平台最低版本低于10.15,而单独运行时Xcode项目的目标版本符合要求。解决方式有两种:

  • 方式一:指定Package最低兼容版本
    在Package.swift中明确设置macOS最低版本为10.15,确保所有target都遵循该版本要求。示例代码:

    let package = Package(
        name: "YourPackageName",
        platforms: [
            .macOS(.v10_15),
        ],
        products: [
            .library(name: "YourPackageName", targets: ["YourPackageName"]),
        ],
        targets: [
            .target(name: "YourPackageName"),
            .testTarget(name: "YourPackageNameTests", dependencies: ["YourPackageName"]),
        ]
    )
    
  • 方式二:兼容旧版本系统
    如果需要支持macOS 10.15以下版本,在使用Path的代码块中添加版本判断,替换为旧版API(NSBezierPath)实现。示例代码:

    #if os(macOS)
    @available(macOS 10.15, *)
    private func createRoundedPath() -> Path {
        // 基于Path的圆角实现代码
    }
    
    private func createLegacyRoundedPath() -> NSBezierPath {
        // 基于NSBezierPath的圆角实现代码
    }
    #endif
    
问题二:RectCorner结构体的public实现修复

当前代码的初始化方法错误覆盖了传入的rawValue,且静态成员未设为public,导致外部无法正常使用。修正后的代码如下:

// defines OptionSet, which corners to be rounded – same as UIRectCorner
public struct RectCorner: OptionSet, Sendable {
    public let rawValue: Int
    
    // 正确初始化:直接赋值传入的rawValue
    public init(rawValue: Int) {
        self.rawValue = rawValue
    }
    
    // 静态成员添加public修饰,允许外部访问
    public static let topLeft = RectCorner(rawValue: 1 << 0)
    public static let topRight = RectCorner(rawValue: 1 << 1)
    public static let bottomRight = RectCorner(rawValue: 1 << 2)
    public static let bottomLeft = RectCorner(rawValue: 1 << 3)
    
    public static let allCorners: RectCorner = [.topLeft, .topRight, .bottomLeft, .bottomRight]
}

关键修正点:

  • 初始化方法不再强制设置为allCorners的rawValue,而是直接使用传入的值
  • 所有预定义的静态角落选项添加public修饰符,确保外部模块可以访问

内容的提问来源于stack exchange,提问作者iPadawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:40:20