在平常iOS项目中,都会使用CocoaPods来对第三方库进行导入和管理,比如AFNetworking、MJRfresh等。这些在官方源上的比较容易进行导入,直接Pod init后,然后填充上对应的库名和版本号即可。最近想着将团队自己封装的代码也用CocoaPods来管理,这里把过程记录一下:
1、创建一个私有的 Spec Repo
一定要私有,GitHub上创建私有仓库是要收费的,这里使用coding的,这里要在coding个人设置那里增加ssh-key,目录为https://git.coding.net/CrazyGitter/testPods.git
这个私有仓库其实是用来管理自己的代码仓库的版本和信息,相当于一个索引。
然后在终端执行:
pod repo add testPods https://git.coding.net/CrazyGitter/testPods.git
在以下目录就可以看到已经添加了testPods Sepc Repo。
/Users/pengehan/.cocoapods/repos
2、创建自己的代码仓库,存放团队封装的代码
第二步其实使用git、svn都可以,这里以github为例(不用私有仓库),在github创建如下:
git@github.com:CrazyGitter/PodsProject.git
这里和平常创建git仓库一致,目录情况如下,相关自定义视图放在CustomView目录下。
pengehan:PodsProject pengehan$ ls -lh
total 24
-rw-r--r-- 1 pengehan staff 0B 2 20 14:26 0.0.1
drwxr-xr-x 4 pengehan staff 136B 2 20 11:49 CustomView
-rw-r--r-- 1 pengehan staff 1.0K 2 20 11:44 LICENSE
-rw-r--r-- 1 pengehan staff 813B 2 21 09:45 PodsProject.podspec
-rw-r--r-- 1 pengehan staff 41B 2 20 11:44 README.md
pengehan:PodsProject pengehan$ pwd
/Users/pengehan/GitHubHome/PodsProject
进入到目录后执行
pod spec create PodsProject,然后目录会生成PodsProject.podspec这样的一份描述文件,我们vi将其编辑为:
Pod::Spec.new do |s|
s.name = "PodsProject"
s.version = "1.0.0"
s.summary = "A description of PodsProject."
s.description = <<-DESC
私有Pods测试
私有Pods测试
私有Pods测试
DESC
s.homepage = "http://www.pengyihan.xyz"
s.license = "MIT"
s.author = { "pengehan" => "pengehan@gmail.com" }
s.platform = :ios,"7.0"
s.requires_arc = true
s.source = { :git => "https://github.com/CrazyGitter/PodsProject.git",:tag => "1.0.0"}
s.source_files = "CustomView/*.{h,m}"
s.frameworks = 'UIKit','QuartzCore','Foundation'
s.module_name = 'PodsProject'
s.dependency 'Masonry'
end
上面的个别参数不懂可以另去查阅。
3、添加你的 Podspec 到你的 repo
接下来我们在将代码描述文件导入到spec repo之前做一下验证,在当前目录执行命令:
pod lib lint
这里要注意,一定要根据警告和错误全部解决掉,不然会添加到repo到失败。
在终端执行如下命令进行添加
pod repo push testPods PodsProject.podspec
查看日志如果没问题就OK啦
4、测试使用私有Pods
使用pod search PodsProject搜索可以看到我们自己的创建的私有Pods
-> PodsProject (1.0.0)
A sdfsdfsdfsdfsdfsdfsdfsdfsdfhort description of PodsProject.
pod 'PodsProject', '~> 1.0.0'
- Homepage: http://www.pengyihan.xyz
- Source: https://github.com/CrazyGitter/PodsProject.git
- Versions: 1.0.0 [coding-crazygitter-testpods repo]
然后在Demo project的Podfile中要添加sepc repo的路径,如下:
source 'https://github.com/CocoaPods/Specs.git'
source 'https://git.coding.net/CrazyGitter/testPods.git'
platform :ios, '9.0'
target 'testPodDemo' do
pod 'Masonry'
pod 'PodsProject'
end
然后就可以正常使用私有Pods了。