首页 > 其他分享 >开发一个简单的swift 包

开发一个简单的swift 包

时间:2023-09-24 10:56:23浏览次数:142  
标签:name package 开发 https 简单 Login swift MyPackage

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

标签:name,package,开发,https,简单,Login,swift,MyPackage
From: https://www.cnblogs.com/rongfengliang/p/17725702.html

相关文章

  • 在python开发过程中常见的异常错误
    下面这些也是常见的异常错误,在报错的时候不要害怕,记住这些常见的单词。AttributeError尝试访问未知的对象属性EOFError用户输入文件末尾标志EOF(Ctrl+d)FloatingPointError浮点计算错误GeneratorExitgenerator.close()方法被调用的时候ImportError导入模块失败......
  • 为什么 Rust 备受开发者青睐?
    引子作为一名敏锐的前端开发者,您可能早已对Rust有所耳闻,毕竟近几年,使用Rust开发的前端构建工具每经发布,其卓越的性能数据总是能带来社区的一阵惊叹。图片来源:https://swc.rs/例如SWC就在其官网宣称在单线程上的执行速度是传统代码转译工具Babel的20倍。如果在4核......
  • SpringBoot开发实战(微课视频版)
    ISBN:978-7-302-52819-7编著:吴胜页数:311页阅读时间:2023-06-24推荐指数:★★★★☆本文介绍SpringBoot2.0.5、JDK1.8,虽然现在已经不维护了,但是大体的流程还是对口的,而且书里面讲解的也比较简单易懂,还是推荐阅读的。第一章:SpringBoot简介SpringBoot发展背景、特征、工......
  • Hadoop是什么? Hadoop是一个由Apache开发的开源分布式计算框架,它能够处理大规模数据并
    Hadoop是什么?Hadoop是一个由Apache开发的开源分布式计算框架,它能够处理大规模数据并行处理任务,支持大规模数据存储和处理。Hadoop的核心组件包括分布式文件系统HDFS和分布式计算框架MapReduce,它们使得Hadoop可以在廉价的硬件上并行地处理大量数据。Hadoop还包括很多相关的项目和子......
  • 开发拼多多商品详情应用的步骤和技巧:如何获取并展示拼多多商品的详细信息?
    一、引言拼多多是一家快速发展的电商平台,提供了丰富的商品资源。许多开发者希望创建应用来展示拼多多的商品详细信息。本文将详细介绍开发拼多多商品详情应用的步骤和技巧,并通过代码示例进行演示。二、开发步骤注册拼多多开放平台首先,您需要访问拼多多开放平台并注册为开发者。在注......
  • 微信小程序开发手册(一)
    微信小程序中的this.setData()以前竟然都没注意这个:我们可能经常性的写出这样的data:data:{listt:[{text:"本周阻止辅导员职业技能大赛生情熟知和谈心谈话比赛",date:"2020.03.03-2020.03.20",mxc_gou:''},{text......
  • [转] 记sublime配置typescript开发环境(插件和编译)的二三事
    最近这几天在了解typescript,typescript官网上说VisualStudio2017和VisualStudio2015Update3默认包含了TypeScript,网上也有很多前辈推荐vscode。但是自己习惯上用sublime,本着编辑器能不换就不换的原则(懒人原则),还是坚持用着sublime。可是体验太糟糕了:a.编辑器右下方没有type......
  • HarmonyOS云开发--测试题
    【判断题】应用的运行离不开云侧支撑。(对)鸿蒙应用可以使用Arkts开发。(对)DevEco中云开发能力和原有端开发能力深度融合。(对)【单选题】端云一体云侧开发推荐开发者使用哪种开发语言(A)    A.ts  B.java  C.js   D.go以下选项关于端云一体组件说法错误的是(......
  • 外卖小程序开发指南:打造完美的点餐体验
    第一步:项目设置和初始化首先,您需要选择一个适合您的开发平台,例如微信小程序、支付宝小程序或其他移动应用平台。接下来,创建一个新的小程序项目,并初始化所需的文件和目录。示例代码(微信小程序)://app.js-小程序的入口文件App({//小程序初始化onLaunch:function(){/......
  • go微服务开发:Mac开发环境下使用kratos框架教程
    背景:Mac13.5.2+kratos+docker+mysql8.0.14+navicat16 参考资料:https://blog.csdn.net/qq_43280993/article/details/129703277https://www.lxlinux.net/6027.htmlhttps://www.cnblogs.com/liyugui/p/17627854.htmlhttps://zhuanlan.zhihu.com/p/545368410......