让自己的库支持Swift Package Mnager

1,048 阅读2分钟

最近在公司电脑的cocapods出了点问题,想升级一下,没想到升级到1.9.x版本使用pod命令后ruby报错了,网上找了很久后也没有解决方案,一怒之下就把cocoapods全部删除了,想试试苹果推出的Swift Package Mnager,我自己在cocoapods上发而了好几个常用的库,但是还不支持Swift Package Mnager,所以学研究一下Swift Package Mnager,然后修改这些项目让它们都支持。

那下面就以我自己的库GrandTime为例子来看看怎么生成的 库的地址是https://github.com/DuckDeck/GrandTime

开发GrandTime的目的很简单,是用来代替NSDate,它提供了用户友好的,方便的简单的API,同时还有一个弱Timer,用来代替NSTimer

首先用Xcode生成一个新的Swift Package Manager项目‘

生成一个新的Swift Package Manager项目
选择Swift Package...

取名
命名为GrandTime和我自己的库名一至 然后点击确认可以生成以下文件
生成的文件
这些文件夹放的是什么东西相信做开发的人都会明白,接下来我选择删除Sources里面的所有东西再把我自己项目内的三个swift文件放进来,这些都是库的核心文件

放三个文件
同时还需要在Package.swift里面的targets里面添加path:"Source",指示源码的路径 然后就能用命令生成xcode项目了,

生成项目
使用命令swift package generate-xcodeproj就能生成项目,注意如果Sources文件夹里面没有东西就会报上图的错误 然后再用Xcode打开该项目,现在可以添加配送示例和演示代码 选择File->New->Target添加新的Target

添加target
选择单页面项目,奖其命名为GrandTimeDemo
GrandTimeDemo

然后这个新的target是跑不起来的,需要设置Schema和设置源代码的Target

管理Schema

设置target

如图,需要添加一个跑这个Target的Schema,和将源码的Target Membership里添加GrandTimeDemo,这样GrandTimeDemo才能使用源码。这两步做完全后基本都完成了,剩下就是写示例代码了,这里就不演示了

示例代码写好后再测试Ok后就可以上传Github了 在这一步打上tag上传即可

上传git

这下大功告成,接一下就是使用了,非常简单

添加oswift package

2.0.0

成功集成

可见创建一个支持Swift Package Mnager的库是极为简单的,相比pod trunk发布Pod库步骤少太多了,目前已经将我写的所有库都支持Swift Package Mnager。