ios - 如何创建和构建一个 swift 包

标签 ios swiftui swift-package-manager

我正在尝试创建一个新的 swift 包 我在控制台上执行了以下命令

  1. swift 包初始化
  2. swift package generate-xcodeproj

这有效并生成一个空项目。 在项目示例文件中,我只添加了一行

导入 UIKit

在 Xcode 中,此构建正确。 但是在控制台上,当我执行 swift build 命令时, 我得到这个错误

/Users/home/Desktop/TT/Sources/TT/TT.swift:1:8: error: no such module 'UIKit'
import UIKit

我做错了什么吗?

最佳答案

您应该选择一个基于 iOS 的目标以使其可用:

Demo

如果您让它选择 macOS(默认情况下),您将收到错误消息。


特定平台

如果你希望你的包仅适用于特定平台(例如仅适用于 iOS),你应该在 package.swift 文件中指定平台:

let package = Package(
    name: "MyLibrary",
    platforms: [
        .iOS(.v9)
    ],
    products: [
,,,

多平台

如果您需要您的框架在多个平台上可用,请不要忘记检查导入框架的可用性,例如:

#if canImport(UIKit)

import UIKit

// And do the rest of UIKit dependent code

#endif

关于ios - 如何创建和构建一个 swift 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58051808/

相关文章:

javascript - 如何在 native react 中检查 ios 和 android 的推送通知权限?

ios - 没有可编译的体系结构(ONLY_ACTIVE_ARCH=YES,事件 arch=x86_64,VALID_ARCHS=i386)?

swift - 滚动其中包含 TextFields 的列表时出现 NavigationBarTitle 问题

ios - SwiftUI 无法添加 onChange 事件

objective-c - Objective-C 中的 SPM Bundle.module 等价物是什么

ios - 如何在具有多个目标的 CocoaPods 中制作框架?

ios - UITabBar 中的 UITableViewController

ios - RestKit - 预期的内容类型 application/json

swift - 当我的核心数据存储从后台扩展更新时,如何刷新我的 SwiftUI View ?

swift - 带有 SwiftPM 的 Cocoa 应用程序