开发一个简单的swift 包
swift 对于包包含了比较严格的访问控制,套路上与rust 比较类似,一般开发的项目都是自己项目的代码,以及引用别人开发
好的包,但是很多时候可能会有自己开发包共享别人的场景
简单包
可以直接使用swift 的cli 创建,或者手工
- 代码结构
├── Package.swift
└── Sources
└── Platform
└── Login.swift
- 代码
Package.swift
// swift-tools-version:5.9
import PackageDescription
let package = Package(
name: "MyPackage",
products: [
.library(name: "MyPackage", targets: ["MyPackage"]),
],
targets: [
.target(
name: "MyPackage"),
]
)
Login.swift
注意需要添加访问控制以及添加public 的init 函数
public struct Login {
var version:String = "v2"
public init(){}
public func login() {
print("Login")
}
}
使用包
- 引用
直接通过path 模式,swift 对于包的引用包含了基于git,以及本地path 模式
import PackageDescription
let package = Package(
name: "myappv3",
dependencies: [
.package(name: "MyPackage", path: "file:///Users/dalong/myios/mypackage"),
],
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products from dependencies.
.executableTarget(
name: "myappv3",
dependencies: ["MyPackage"]),
]
)
- 使用
import MyPackage;
@main
struct App {
static func main(){
let login = Login()
login.login()
}
}
- 效果
说明
vapor 这个项目包含了不少swift 包,可以学习参考
参考资料
https://www.swift.org/package-manager/
https://github.com/vapor
https://github.com/apple/swift-package-manager
https://swiftpackageregistry.com/
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/accesscontrol
https://medium.com/geekculture/the-best-registries-for-your-swift-package-82c08dd45b05
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-09-24 pmm 自定义prometheus 配置
2020-09-24 Hasura 即将支持更多的数据库类型
2019-09-24 .net core 原生支持grpc
2018-09-24 dgraph 基本查询语法 三
2018-09-24 dgraph 数据加载
2018-09-24 dgraph 基本查询语法 二