开个篇
作为一个iOS开发者对于Cocoapods都不陌生,在这里简单介绍一下Cocoapods。
Cocoapods一个非常好用的三方管理工具,使用一个名为Podfile的文本文件管理项目中引用到的三方库,解析库之间的依赖关系,获取源代码,然后在Xcode工作区中将其链接在一起构建项目。如果想深入了解Cocoapods点击传送门
根据上面的介绍我们知道Cocoapods作为iOS开发的三方管理器非常便利,那么我们怎么创建一个属于自己的工具类,怎么让它也支持pod集成进而让自己在其他项目中也可以便利的使用尼?
最近项目不太忙,自己尝试了一下在这跟大家分享一下也是记录一下自己的尝试过程,备忘。。。
创建过程
1.创建私有Spec Repo
Spec Repo 是所有的Pods的一个索引,是所有公开的Pods 的podspec 文件的一个仓库,其实就是一个部署在服务器的Git仓库,当你使用CocoaPods 后它会被Clone到本地的 ~/.cocoapods/repos 目录下。
1.在coding.net创建一个MySpecs的项目
2.添加你的私有Repo到你的CocoaPods
$pod repo add MySpecs https://git.coding.net/***/MySpecs.git
成功后会在~/.cocoapods/repos目录下就能看到MySpecs了,至此,第一步创建私有
Spec Repo就完成了。
2.创建Pod项目
1.在coding.net创建一个MyLib的项目
2.使用Cocopods提供的Using Pod Lib Create创建一个项目
cd到你要创建项目的文件夹下运行命令
$pod lib create MyLib
接着终端会向你提出几个问题根据自己的需求回答即可
成功后会在目录中创建好一个MyLib工程。
3.添加实现代码
在MyLib的Classes文件夹下添加自己想要存放的代码
4.开发模式下测试pod库的代码
打开MyLib项目中的Example文件夹编辑Podfile文件:
pod 'MyLib', :path => '../' # 指定路径
#pod 'MyLib', :podspec => '../MyLib.podspec' # 指定podspec文件
5.提交Pod库到MyLib仓库
cd进入MyLib项目根目录然后,执行以下命令:
$ git add .
$ git commit -s -m "初始化MyLib 库"
$ git remote add origin git@git.coding.net:***/MyLib.git #添加远端仓库
$ git push origin master #提交到远端仓库
$ git tag -m "first release" "0.1.0" #打上标签,这个很重要
$ git push --tags #推送tag到远端仓库
推送成功后Pod项目构建完成
同学们注意划重点了啊!(敲黑板)
3.最重要的一步构建podspec文件并提交到私有Spec Repo仓库
1.配置MyLibPod库的pod spec 文件
#
# Be sure to run `pod lib lint YunUeLib.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
#名称
s.name = 'MyLib'
#版本号
s.version = '1.0.0'
#简介
s.summary = '个人私有库.'
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC
#主页,这里要填写可以访问到的地址,不然验证不通过
s.homepage = 'https://coding.net/u/***/p/MyLib/git'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
#开源协议
s.license = { :type => 'MIT', :file => 'LICENSE' }
#作者
s.author = { 'mr_six666' => 'a15042004750@sina.com' }
#项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS。
s.source = { :git => 'https://git.coding.net/***/MyLib.git', :tag => '1.0.0' }
# s.social_media_url = 'https://weibo.com/Mr_Six666666'
#支持的平台及版本
s.ios.deployment_target = '8.0'
#代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则
s.source_files = 'YunUeLib/Classes/**/*'
#资源文件地址
# s.resource_bundles = {
# 'YunUeLib' => ['MyLib/Assets/*.png']
# }
#公开头文件地址
# s.public_header_files = 'Pod/Classes/**/*.h'
#所需的framework,多个用逗号隔开
# s.frameworks = 'UIKit', 'MapKit'
#依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency
# s.dependency 'AFNetworking', '~> 2.3'
end
更多配置请参考:官方文档
2.编辑完文件后,验证一下这个文件是否可用
cd到MyLib项目根目录,运行命令:
$ pod lib lint
当你看到终端输出:
-> MyLib (0.1.0)
MyLib passed validation.
表示验证通过,是一个符合CocoaPods规则的配置文件。
3.本地测试MyLib.podspec
打开MyLib项目中的Example文件夹编辑Podfile文件:
#pod 'MyLib', :path => '../' # 指定路径
pod 'MyLib', :podspec => '../MyLib.podspec' # 指定podspec文件
cd到Example工程目录下运行命令:
pod update
打开Example项目工程,现在可以看到库文件都被加载到Pods子项目中了。
4.向Spec Repo提交pod spec
测试库文件没有问题我们就把MyLib.podspec提交到远程Spec Repo仓库中,就是本文开头说的MySpecs仓库
cd到MyLib项目根目录,运行命令
$ pod repo push MySpecs MyLib.podspec
提交成功后,这个组件库就添加到我们的私有Spec Repo中了,可以进入到~/.cocoapods/repos/MySpecs目录下查看。在远端仓库MySpecs仓库中也有了一次提交。
至此,我们的私有库已经构建完成,使用pod search命令就可以查到我们自己的库了.
运行命令 pod search MyLib
-> MyLib (0.1.0)
这个是我的私有库项目Demo.
pod 'MyLib', '~> 0.1.0'
- Homepage: *****
- Source: *******
- Versions: 0.1.0 [MySpecs repo]
四、使用制作好的Pod
在正式项目的Podfile 里添加
pod "MyLib", :git => 'https://git.coding.net/Reborn96/YunUeLib.git'
然后执行命令
pod update
然后打开项目可以看到,我们自己的库文件已经出现在Pods子项目中的Pods子目录下了。
网友评论