前言
网上有很多制作私有库的博客,按照大部分博客做下来,本地~/.cocoapod/repos目录结构如下:

image.png
如上图所示,源码和版本混在一起,repos目录是用来管理私有库版本的,应该只存在版本相关的文件,不应该有私有库源码和例子工程等文件
虽然不影响使用,但目录结构非常混乱,不利于管理,正确的目录结构应该是下图这样的:

image.png
图一产生的原因是只创建了一个远程仓库,导致源码和版本都在一个仓库,解决方法很简单,多创建一个版本管理的仓库,具体做法如下:
1、在Github上创建远程源码仓库

image.png

image.png
2、在Github上创建远程版本管理仓库

image.png

image.png
3、创建私有repo
pod repo add FMLibrarySpecs https://github.com/FMYang/FMLibrarySpecs.git
注意:这里的地址是版本管理仓库的地址,而不是源码地址
4、创建本地仓库添加源码
cd ~/tuandai/Github
git clone https://github.com/FMYang/FMLibrary.git

image.png
5、创建podspecs文件

image.png

image.png
6、验证podspecs文件
cd ~/tuandai/Github/MyLib
pod lib lint
提示错误

image.png
输入echo "3.2" > .swift-version就行
再次验证

image.png
验证通过!
7、推送本地仓库到远程并发布tag
git add -A
git commit -m "first commit"
git push origin master
git tag v0.0.1
git push --tags
8、推送podspecs到私有库(同时会推送到远程版本管理仓库)
cd ~/.cocoapods/repos

image.png
pod repo push FMLibrarySpecs FMLibrary.podspec

image.png

image.png
可看到,也推送到远程仓库上了
9、搜索私有库
pod search FMLibrary

image.png
10、使用
创建demo工程,设置podfile文件
platform :ios, '8.0'
use_frameworks!
target 'FMLibraryTest' do
pod 'FMLibrary', :git => 'https://github.com/FMYang/FMLibrary.git'
pod 'SnapKit','3.2.0'
end
pod install

image.png
更新版本
1、修改源码后和specs的版本号

image.png
1、提交变更到远程仓库
git add -A
git commit -m "add function"
git push origin master
git tag v0.0.2
git push --tags
pod repo push FMLibrarySpecs FMLibrary.podspec // 发布新版本

image.png
使用的时候执行
pod update --no-repo-update

image.png
遇到过的问题
1、pod repo push 失败

image.png
原因:手动删除~/.cocoapod/repos/FMLibrarySpecs下的版本文件导致
解决方案:pod repo update