一、创建Spec Repo的私有远程仓库
1、在git远程服务器创建一个Spec Repo的私有仓库,XXXSpecs,用来存储Spec Repo的私有仓库
2、创建本地Spec Repo
-
前往文件夹 ~/.cocoapods/repos,打开终端
-
在终端切换到当前目录下执行:
pod repo add XXXSpecs https://gitee.com/username/XXXSpecs.git
gitee.com/username/XX… 是Spec Repo的私有远程仓库地址
pod repo list
:查看本地Spec Repo
在新机器可以配置私有库到本地cocoapods
3、在git远程创建一个私有仓库,XXXPodProject,用来存放项目工程文件。
创建时不要初始化
4、创建pod的所需的项目工程文件,并上传到远程私有仓库
- 在终端,cd切换到某个目录下
- 执行
pod lib create PodLibName
What platform do you want to use?? [ iOS / macOS ]
> ios
What language do you want to use?? [ Swift / ObjC ]
> swift
Would you like to include a demo application with your library? [ Yes / No ]
> yes
Which testing frameworks will you use? [ Quick / None ]
> none
Would you like to do view based testing? [ Yes / No ]
> yes
5、修改文件及podspec
- 修改文件及podspec 配置,添加swfit版本
s.swift_version = '4.2'
- 打标签tag
- 创建标签
git tag 1.0.0
- 推送标签
git push --tag
- 查看标签
git tag
6、验证本地podspec有效性
pod lib lint PodLibName.podspec
7、 将本地项目文件上传到远程仓库中
git remote add origin url
这里需要重点注意的是,我们给打的标签值要与podspec文件中的版本号一致。
8、向私有的spec Repo远程仓库中提交podspec
将Lib仓库和Spec Repo进行关联
使用 pod repo push XXXSpecs PodLibName.podspec
命令把私有库添加到私有repo中。
此时,~/.cocoapods/repos/XXXSpec 文件夹下已经有当前版本的podspec文件了
二、新电脑配置本地私有库
- 终端
cd ~/.cocoapods/repos
- 配置远程私有库
pod repo add XXXSpecs https://gitee.com/username/XXXSpecs.git
三、创建新的lib到AHSpecs
- 创建
pod lib create PodLibName
What platform do you want to use?? [ iOS / macOS ]
> ios
What language do you want to use?? [ Swift / ObjC ]
> swift
Would you like to include a demo application with your library? [ Yes / No ]
> yes
Which testing frameworks will you use? [ Quick / None ]
> none
Would you like to do view based testing? [ Yes / No ]
> yes
- 验证lib
pod lib lint PodLibName.podspec
- 关联(推送)lib到AHSpecs
pod repo push XXXSpecs PodLibName.podspec
每次lib更新之后也需要push
四、上传cocoapods
pod trunk push <私有代码库>.podspec
提示你去注册。输入你的Email和姓名,然后去邮箱验证通过。
pod trunk register Email 'username' --verbose
pod trunk push <私有代码库>.podspec
五、遇到的问题
-
使用
--allow-warnings
参数,例如pod repo push --allow-warnings
,这样可以忽略掉一些警告信息,但是如果有错误信息,还是会中断推送。 -
使用
--skip-import-validation
参数,例如pod repo push --skip-import-validation
,这样可以跳过验证podspec文件中的source_files是否能正确导入,这个参数对于一些依赖了第三方框架的私有库比较有用,因为有时候在.h文件中import <>会导致验证失败。 -
使用
--use-libraries
参数,例如pod repo push --use-libraries
,这样可以在验证时使用静态库而不是动态库,这个参数对于一些依赖了静态库的私有库比较有用,因为有时候动态库会导致验证失败。