上一篇
制作cocoapods私有仓库(一)依赖库制作
我们已经做好了依赖库
这一篇将如何将TestDemo2作为依赖库来制作cocoapods私有仓库
依赖库和cocoapods私有仓库是两个概念。所以我们需要再建立一个Spec Repo ,用来管理依赖库
Spec Repo 只需要一个,可以同时管理多个依赖库
类似与cocoapods的 公有仓库master
1.建立管理依赖库的 Spec Repo
这个仓库是用来存放我们自己所有的私有库的 podspec 文件
建立git仓库参考
制作cocoapods私有仓库(一)依赖库制作中git仓库建立过程
注意观察一下目录
将Spec Repo 添加到cocoapods
pod repo add REPO_NAME SOURCE_URL
其中的 REPO_NAME 是我们要添加的私有 repo 的名称,后面是仓库的 git 地址。
这里做的其实是创建的工作,也就是在 ~/.cocoapods/repo 目录下添加了一个以你的私有 repo 为名的文件夹,但是并没有添加 spec 文件。
pod repo add TestDemo2Spec https://git.oschina.net/ZOKAI/TestDemo2Spec.git
2.添加podspec到Spec Repo
podspec 是cocoapods 安装使用第三方的依据,Spec Repo管理podspec
pod repo push REPO_NAME PODSPEC
这里必须注意,在push 之前最好检测一下远程podspec是否可用
检测命令
pod spec lint TestDemo2.podspec --allow-warnings --verbose --use-libraries
这个命令和
pod lib lint TestDemo2.podspec --allow-warnings --verbose --use-libraries
很相似,唯一区别就是,前者是检测远程podspec,后者是检测本地podspec
在push到cocoapods是时候,如果检测的时候使用 --allow-warnings --verbose --use-libraries 这些参数,push的时候也必须同时使用
添加--use-libraries参数,在使用该私有仓库的时候,还是会报如下错误
[!] The 'Pods-NewTestUi' target has transitive dependencies that include static binaries:
(/Users/sqq/Desktop/NewTestUi/Pods/RongCloudIM/RongCloudIM/RongIMKit.framework,
/Users/sqq/Desktop/NewTestUi/Pods/RongCloudIM/RongCloudIM/libopencore-amrnb.a, and
/Users/sqq/Desktop/NewTestUi/Pods/RongCloudIM/RongCloudIM/RongIMLib.framework)
解决方法:
添加如下设置
pre_install do |installer|
def installer.verify_no_static_framework_transitive_dependencies; end
end
当push到cocoapods 出现如下提示,即表示私有仓库制作成功
pod repo push TestDemoSpec TestDemo2.podspec --allow-warnings --verbose --use-libraries
Validating spec
-> TestDemo2 (1.0.0)
Updating the `TestDemoSpec' repo
Already up-to-date.
Adding the spec to the `TestDemoSpec' repo
- [Add] TestDemo2 (1.0.0)
Pushing the `TestDemoSpec' repo
To https://git.oschina.net/ZOKAI/TestDemo2Spec.git
9485679..d7688af master -> master
此时spec repo会多一个目录 这个目录中就是TestDemo2.podspec文件
同时github仓库上也会多出一行