个人微信号:r913218338,欢迎随时交流
制作一个支持SPM(Swift Package Manager)、carthage和cocoapods的过程
### 首先支持carthage
不建议先支持SPM,因为SPM会在.gitignore中添加忽略工程配置文件
-
首先在Xcode中新建一个framework,然后在框架中添加源文件等
-
建立源文件后,在新target中新建一个single view app,示范如何使用框架。
-
打开控制台,在项目目录下运行以下命令:
carthage build --no-skip-current
-
如果出现以下结果,则carthage已成功配置
PS:第三步是验证是否能创建carthage库,不执行此命令直接提交也没问题
然后是cocoapods
-
首先生成一个podspec文件,在文件中配置相关内容,也可以通过第二个命令直接生成相应的xcode项目
pod spec create YourLib pod lib create YouLib
-
然后在这个文件里配置项目,接下来给git 打上标签 提交到 github上
$ git tag "0.0.01" $ git push --tags
-
然后使用下面的命令验证podspec是否有效:
$ pod spec lint --verbose --allow-warngings
-
这时候可能会提示以下错误,可以重新打个tag 0.0.2 然后再次验证就可以通过了: **-> ModuleBase (0.0.1)
- ERROR | [iOS] file patterns: The
source_files
pattern did not match any file.**
- ERROR | [iOS] file patterns: The
-
如果想删除旧的tag,先删除本地的,然后再删除服务器的
$ git tag -d "0.0.1" $ git push origin :refs/tags/0.0.1 // 批量删除tag $ git tag -l| xargs git tag -d $ git show-ref --tag | xargs git push origin
$ git tag -l | awk '/tag_20180[1-5]{1}/{print}' | xargs git push origin --delete tag
-
这时候就可以验证通过了,验证通过后,还需要向cocoapods注册你的库。然后会发一封邮件到你的邮箱,你需要去邮箱确认一下。邮箱确认完毕后,需要把你podspec提交到cocoapods
$ pod trunk register [email protected] 'YouName' $ pod trunk push YouPodLib.podspec
-
然后去搜索你自己的库,可能会出现搜不到的情况。
pod search YourPodLib
-
这时候一般需要多次操作。
rm ~/Library/Caches/CocoaPods/search_index.json pod setup
-
关于库更新的情况。更新后有时间延迟,估计要半小时左右的样。需要把你的pospec文件提交到cocoapods中去更新你的库。如果想撤回已存在的版本,需要用到删除命令
$ pod trunk delete YourLibName version $ pod trunk delete ModuleBase 0.0.3
-
创建私有库之后更新
最后是SPM
-
直接执行命令
$ swift package init
-
可以使用两个命令来测试库
$ swift build $ swift test
-
然后就可以提交github,在项目中使用了。
题外话 如果想删除整个git repo的历史记录并且把整个repo 清空
$ git checkout --orphan latest_branch
$ git add -A
$ git commit -am "commit message"
$ git branch -D master
$ git branch -m master
$ git push -f origin master