开发一个简单的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

posted on   荣锋亮  阅读(62)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用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 基本查询语法 二

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示